![]() |
Datenbank: Oracle • Version: 10g • Zugriff über: SQLDirect
TClientDataSet: zu langsam! Alternative?
Hallo,
ich verwende ein TClientDataSet um im Arbeitspeicher die Datensätze einer Tabelle zu cachen (readonly). Das Einfügen der Datensätze in das TClientDataSet dauert zu lange. Fügen über TQuery > TDataSetProvider > TClientDataSet ein. (SQLDirect statt BDE) Hat jemand eine bessere Komponente? Oder muss ich ein Array programmieren? Danke. Reinhold P. |
Re: TClientDataSet: zu langsam! Alternative?
Was genau dauert denn zu lange? Das Speichern im ClientDataSet oder das anschließende Übertragen an die Datenbank? Ich arbeite selber mit ClientDataSets (allerdings verbunden mit einem Firebird-Server) und stelle da keine Probleme fest.
|
Re: TClientDataSet: zu langsam! Alternative?
- Die Daten werden von der Datenbank einmal in das TClientDataSet eingefügt.
- Der Zugriff erfolgt auf die Daten erfolgt dann mehrmals auf das TClientDataSet. - Die Daten werden nicht verändert und auch nicht an die Datenbank zurückgeschrieben. Das Einfügen der Datensätze in das ClientDataset (abhängig von Filterparameter bis zu 1000 Datensätze) dauert lange. Die Datenbankabfrage ist sehr schnell. Ich hoffe, die Beschreibung erklärt den Ablauf. Danke für die Hilfe. Reinhold P. |
Re: TClientDataSet: zu langsam! Alternative?
Also wenn ich es richtig verstanden habe, dauert das Laden der ca. 1.000 Datensätze zu lange. Hierzu folgende Anregungen bzw. Anmerkungen:
1. Was heißt denn eigentlich lange? 2. Wie viele Datensätze enthält die Ursprungstabelle? 3. Du schreibst, Du arbeitest mit Filtern. Ich nehme an, es handelt sich um Filter im ClientDataSet. Meines Erachtens ist das Filtern im zugrundeliegenden Query effektiver. Also lieber im ursprünglichen Select eine entsprechende Where-Klausel deklarieren und die Client-Menge nicht weiter filtern. Oder gäbe es hierbei Probleme im Kontext Deines Programms? |
Re: TClientDataSet: zu langsam! Alternative?
welche art von daten hast du da? wie groß sind die tabellen usw...? ein paar mehr infos wären schon nicht schlecht. im bezug auf die filter kann ich mich nur meinem vorredner anschließen, die sql abfrage einzuschränken, also in der db zu filtern ist um welten schneller als es im tclientdataset zu machen.
|
Re: TClientDataSet: zu langsam! Alternative?
Zitat:
Der Frickler |
Re: TClientDataSet: zu langsam! Alternative?
Wenn es dir nur um das Cachen zur Laufzeit geht, ohne die erweiterten Möglichkeiten des TClientDataSet zur 'Rücksynchronisation', dann würde ich mir auch mal reine MemDataSets wie zB TkbmMemTable (Freeware, SourceForge) oder TdxMemData (DeveloperExpress) ansehen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz