Entwickler-Ecke

Datenbanken - SQLClientDataSet (Verzögerung beim Öffnen)


Björn karpenstein - Mo 22.08.05 13:54
Titel: SQLClientDataSet (Verzögerung beim Öffnen)
Soo, ich habe eben so ne tolle Antwort bekommen, dass ich jetzt nochmal eine Frage fragen möcht :-)...

Ich habe eine Suchmaske, die ich ebenfalls mit einem SQLClientDataSet ausgestattet habe. Im Endeffekt geht es nur darum einen Artikel zu suchen, und diesen dann in eine andere Maske reinzuschreiben.

Ich setze immer

SQLClientDataSet.Active := true

Die SQL-Anweisung ist einfach:
'SELECT * From artikel WHERE bezeichnung = ' + bezeichnung;

Obwohl ich nur 4 Artikel in der Datenbank habe, dauert das öffnen knapp 5 sekunden. Lässt sich das optimieren, oder wäre es evtl. besser, wenn ich ein normales TSQLDataSet nehme?


Moderiert von user profile iconGausi: Topic aus VCL (Visual Component Library) verschoben am Mi 24.08.2005 um 11:44


rochus - Mo 22.08.05 13:59

Also das TClientDataSet ist wohl relativ langsam, nur mal so nebenbei ;) irgendwo im Netz gibts die TBetterClientDataSet Kompos oder wie die heißen. Selbst Borland empfielt den nutzen dieser als der hauseigenen (steht irgendwo auf nem Whitepaper im BDN).

Auf jeden fall solltest du eventuell immer nur die Dinge selektieren, die du wirklich brauchst und auch eingeschränkt. Ob das bei 4 Artikeln was bringt, weiß ich nicht. MErkwürdig ist das trotzdem. Eventuell liegts and er Verbindung zur DB?


Björn karpenstein - Mo 22.08.05 14:15

Der Server läuft im Moment lokal, wie heissen diese Komponenten genau? Hab bei google nix gefunden :)


Udontknow - Mo 22.08.05 14:18

Na, die Clientdatasets mögen ab und an etwas lahm sein, aber so lahm nun auch nicht. Wird eventuell die DB-Verbindung nach einem Abruf getrennt? Ähm, wie genau heisst denn nun die Klasse, die du verwendest? TClientdataset, TSQLDataset, TSimpleDataset? Ein TSQLClientDataset finde ich gar nicht...

Cu,
Udontknow


Björn karpenstein - Mo 22.08.05 14:25

Hallo das TSQLClientDataSet ist glaube ich unter Windows (bei Delphi 7) nur im source-Verzeichnis und man muss es vorher kompilieren. Unter Kylix ist es standartmäßig installiert.


Udontknow - Mo 22.08.05 14:32

Ahso, das ist jetzt das Simpledataset. Hast du eine eigene SQLConnection zugewiesen, oder nutzt das Ding die interne Verbindung (InternalConnection)? Wenn letzteres, ist das der Grund, da immer die Verbindung zur DB erst hergestellt werden muss.

Cu,
Udontknow


Björn karpenstein - Mo 22.08.05 14:39

Ich habe eine eigene SQLConnection zugewiesen. Das mit dem "Internal" kenne ich gar nicht :). Also ich musste damals den Treiber von http://www.crlab.com kaufen, weil es Probleme mit neueren MySQL-Versionen gab. Der funktioniert wenigstens richtig. Aber ich schätze mal es liegt am SQLClientDataSet, das dauert immer so lange wenn ich active auf true setze. Bei einem SQLDataSet geht der Zugriff ziemlich schnell.