![]() |
Datenbank: Access • Zugriff über: ADO
ADO Access langsame Reaktionszeit
Hallöchen
Ich stellen in einem DBGrid die Daten einer AccessTabelle dar. Der Zugriff erfolgt über TADOTable und TDatasource. Von einer anderen Stelle im Programm werden Daten aus einer Textdatei eingelesen und über einen zweiten TADOTable und TDatasource in die AccessTabelle eingetragen. Es dauert nun sehr lange ( >= 4 Sekunden ) bis die Daten nach einem Requery in dem DBGrid angezeigt werden können . ( Die Datenbank befinded sich auf dem selben PC ) Kann man den Vorgang beschleunigen ? Oder ist eine andere Datenbank schneller ? Vielen Dank für Eure Hilfe. hmg Mandi |
Re: ADO Access langsame Reaktionszeit
Das verhalten liegt am bescheuderten Caching-Verhalten von Access. Such mal im Entwickler-Forum nach "A. Kosch, Access und Cache". Dort sollte beschrieben sein wie man dieses Caching austrickst.
|
Re: ADO Access langsame Reaktionszeit
Bei MS Access sollte es grundsätzlich nur eine zentrale ADOConnection verwenden.
Wenn man mehr als eine Connection hat, dann können Änderungen über Connection A erst dann von Connection B gelesen werden, wenn der Datenbankcache in die MDB-Datei geschrieben wird. Ich hoffe doch, dass deine ADOTables überhaupt eine ADOConnection verwenden. Wenn man keine ADOConnection hat, sondern nur einen ConnectionString pro ADOTable, dann erzeugt die VCL intern eine Connection pro ADOTable. |
Re: ADO Access langsame Reaktionszeit
Hallo,
Zitat:
Zitat:
Wieviele Datensätze werden angezeigt, Hoffentlich nicht alle ? -> TAdoQuery oder TAdoTabe.Filter zum Einschränken benutzen Heiko |
AW: ADO Access langsame Reaktionszeit
Ich hab' diese alte Thema noch mal ausgegraben, weil ich ein ähnliches Problem habe.
Mit diesem Connection String konnte ich den Datandurchsatz um ca. 50% steigern:
Code:
Damit wird Access zwar immer noch nicht richtig schnell, aber wenn man es nutzen muß, hilft es ein wenig.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyDatabase.mdb;Persist Security Info=False;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
(Access 2003) Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:58 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-2025 by Thomas Breitkreuz