AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Einträge aus Datenbankfeld in Combobox
Thema durchsuchen
Ansicht
Themen-Optionen

Einträge aus Datenbankfeld in Combobox

Ein Thema von NoGAD · begonnen am 5. Feb 2021 · letzter Beitrag vom 11. Feb 2021
Antwort Antwort
Seite 2 von 2     12   
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#11

AW: Einträge aus Datenbankfeld in Combobox

  Alt 6. Feb 2021, 12:55
Hallo,
ohne die DB wird das aber nichts.

Schon mal durchdebuggt?
Klammere einfach mal alles aus und dann schrittweise wieder rein.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: Einträge aus Datenbankfeld in Combobox

  Alt 7. Feb 2021, 12:10
Dauert noch etwas, ich bin noch auf der Suche

Danke erstmal.

LG
Mathias
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.034 Beiträge
 
Delphi 12 Athens
 
#13

AW: Einträge aus Datenbankfeld in Combobox

  Alt 7. Feb 2021, 12:27
Bei Google suchenAQTime / Hier im Forum suchenAQTime und auch im GetIt zu finden
https://www.youtube.com/watch?v=OZzY_2JqdGY
https://www.youtube.com/watch?v=ZTBM8cIucEE
https://www.youtube.com/watch?v=WKQh-fiXpKI



Aber beachte, dass Messen das Gemessene auch etwas beeinflussen kann.
Ich hatte mal eine "winzige" oft durchlaufene Schleife, die in Real fast keine Zeit brauchte, aber beim Messen angeblich der Hauptverursacher war. (ein bissl nachdenken sollte man also dennoch)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 7. Feb 2021 um 12:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: Einträge aus Datenbankfeld in Combobox

  Alt 8. Feb 2021, 04:49
Ich habe mal ein Testprogramm erstellt.

Falls jemand von euch ABSDatabase einsetzt oder die Demo ausprobieren möchte, kann mir eventuell weiterhelfen.

In der Unit
Code:
Unit_ABS_Functions_01.pas
gibt es die Function
Code:
function Restructure_Table_Query(_Database_Construct: TABS_Construct; _Table_Construct: TTable_Construct): TABS_Function_Result;
Diese wird intern durch eine andere Function aufgerufen.

Bei einer größeren Datenbank (2000 +) dauert es unglaublich lange, bis die Tabelle restrukturiert wird.

Vielleicht fällt euch dazu noch was ein

Nachtrag:

In der Unit
Code:
Unit_initialization_01
kann die Zeitmessung aktiviert werden:
Code:
_DebugTimeKeeper := true;


LG Mathias
Angehängte Dateien
Dateityp: zip test-database-02.zip (21,6 KB, 5x aufgerufen)
Mathias

Geändert von NoGAD ( 8. Feb 2021 um 05:00 Uhr) Grund: Nachtrag: _DebugTimeKeeper := true;
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: Einträge aus Datenbankfeld in Combobox

  Alt 8. Feb 2021, 06:33
Hallo,
was hat das jetzt mit dem Originalproblem zu tun?
Heiko
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.275 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: Einträge aus Datenbankfeld in Combobox

  Alt 8. Feb 2021, 09:37
Hallo,
ich habe mal kurz draufgeschaut.

1. Du mischst Tables und Queries (dort auch RequestLive=True?)
2. "WHERE 1 = 0" könnte ein Full Table Scan werden (wenn ADS nicht so gut optimiert)

Ich würde mal nachschauen, ob du bei ABS nicht an die Systemtabelle (Systemkatalog) rankommst. Dort stehen alle Tabellen/ Felder/ Feldtypen drin.
Dann musst du nicht durch irgendwelche Queries gehen, ob festzustellen, ob der Datentyp stimmt.

Da du ja jetzt weisst, dass die Methode langsam ist, Debugger anwerfen.
Heiko

Geändert von hoika ( 9. Feb 2021 um 08:43 Uhr)
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
589 Beiträge
 
Delphi XE6 Enterprise
 
#17

AW: Einträge aus Datenbankfeld in Combobox

  Alt 8. Feb 2021, 10:26
Ich würde mal nachschauen, ob du bei ADS nicht an die Systemtabelle (Systemkatalog) rankommst. Dort stehen alle Tabellen/ Felder/ Feldtypen drin.
Dann musst du nicht durch irgendwelche Queries gehen, ob festzustellen, ob der Datentyp stimmt.

Da du ja jatzt weisst, dass die Methode langsam ist, Debugger anwerfen.
ABS, nicht ADS. ABS = "Absolute Database" ist eine reine ISAM-Datenbank mit aufgepfropftem SQL (so wie die BDE Paradox zu SQL verhalf). SQL ist da langsamer, als wenn man navigierend durch die Datenbank geht - es ist nur bequemer für komplexe Abfragen. Darum ist es wichtig, Indexe zu nutzen, und dann per SetRange durch die Daten zu gehen.
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: Einträge aus Datenbankfeld in Combobox

  Alt 8. Feb 2021, 18:01
Danke. Ich teste mich mal durch.

LG Mathias.
Mathias
  Mit Zitat antworten Zitat
Benutzerbild von NoGAD
NoGAD

Registriert seit: 31. Jan 2006
Ort: Weimar
345 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: Einträge aus Datenbankfeld in Combobox

  Alt 11. Feb 2021, 17:10
SQL ist da langsamer, als wenn man navigierend durch die Datenbank geht ...

Da hat Frickler recht, ich habe Herrn Lysenko, der Inhaber/Entwickler der Datenbank, per E-Mail angefragt, ob es dazu eine schnellere Möglichkeit gibt.

Hier die Antwort:


Hello Mathias,

Thank you for your question.
Now each table could be modified several times (once for adding field, then for modifying field size, ...)
But ALTER table is very time-consuming operation if table is large.

You can speed up this procedure, if you will use
1 TABSTable.RestructureTable call for all table structure modifications (adding fields, change field size, ...)
See https://componentace.com/help/absdb_...ringtables.htm

Best regards,
Andrey Lysenko


Kleine Notiz am Ende, der Thread ist für mich auch abgeschlossen.

Nach viel Überlegung, ist mir bewusst geworden, dass es im Prinzip ja auch viel, viel einfacher wäre, wenn ich separate Tabellen für bestimmte Einträge anlege. Hier z.B. für Autoren und Verlage, ebenso für Bücherschränke/Zimmer, in denen die stehen/Regale/Fächer. Dann kann ich die schneller in eine Combobox einlesen, weil es im Prinzip nur einmal und nicht n-mal in einer Tabelle vorkommt. Oder eben gleich in eine DBCombobox.

Das Thema Datenbank ist für mich immer noch absolut abstrakt. Ich komme ständig an meine Grenzen der Lernbarkeit - weil ich es einfach nicht begreife.

Dafür ist mir letzte Nacht eine (aus meiner Sicht) tolle Idee eingefallen, wie ich unabhängig von einem Generalschlüssel eine Datenbankverschlüsselung erreichen kann, die dennoch mit einer Art Generalschlüssel versehen werden kann. Dazu mache ich einen separaten Thread auf, zu finden hier: https://www.delphipraxis.net/206951-...-masterkey.htm


LG Mathias
Mathias
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz