Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi öffnen v. ADO Table sehr langsam (https://www.delphipraxis.net/11004-oeffnen-v-ado-table-sehr-langsam.html)

fredi 29. Okt 2003 14:07


öffnen v. ADO Table sehr langsam
 
Hallo an alle,
das öffenen einer simplen dBase Table mit ca. 300 Records dauer fast ewig..

1. Einstellungen:

1.1. folgende Einstellungen habe ich bei der ADOConnection:
ConnectionOption := coConnectUnspecified
CursorLocation=clUseClient
IsolationLevel=ilReadCommitted
LoginPrompt=false;
Mode=cmReadWrite


1.2. Einstellung ADOTable
AutiCalcFields=false
CacheSize=1
CursorLocation=clUserClient
CursorType=ctDynamic
LockType=ltBatchOptimistic
MarshalOption=moMarshalModifiedOnly
MaxRecords=0
ReadOnly=false
TableDirect=true;

2. so öffne ich di Tabelle:

2.1.) ADOConnection aufbauen und connect
Screen.Cursor := crSQLWait;
ImpAusstForm.ADODBFTable.Close;
x_DBFDir := ExtractFileDir(ImpAusstForm.OpenDialog1.FileName);
vFileName := ExtractFilename(ImpAusstForm.OpenDialog1.FileName) ;
ImpAusstForm.ADODBFConnection.ConnectionString := '';
ImpAusstForm.ADODBFConnection.ConnectionString:='P rovider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+ x_DBFDir +';Mode=ReadWrite; Extended Properties=dBase III;';
ImpAusstForm.ADODBFConnection.LoginPrompt:=false;
ImpAusstForm.ADODBFConnection.Connected:=true;

2.2. öffnen der ADTable
//bis daher gehts ja noch schnell, aber das öffnen der tabelle dauert ca. 20-30Sec.

ImpAusstForm.ADODBFTable.TableName := vFileName;
ImpAusstForm.ADODBFTable.open;
Screen.Cursor := crDefault;

meine Frage:
1. was kann man bei den Einstellungen verbessern (ADOConnection u. ADOTable)
2. wie schauts mit dem connectionstring aus, ist der OK ?

danke für eure hilfe
fredi

mikhal 1. Nov 2003 12:02

Re: öffnen v. ADO Table sehr langsam
 
Du öffnest eine dBase III Tabelle mit der Microsoft Jet (Access). Das dauert!

Zuerst wird die MS Jet aufgerufen, in dieser Instanz wird dann auf eine dBase III Tabelle verwiesen, zu der die MS Jet dann wieder den passenden ODBC-Treiber laden muß, damit sie auf dBase zugreifen kann...

Es gibt mehrere Möglichkeiten:

1. Wenn due unbedingt ADo verwenden möchtest, benutze gleich Access als Datenbank.
2. Verwende die BDE und damit die "normalen" Datenbank-Komponenten, die Delphi zur Verfügung stellt
3. Suche mal im Internet nach nativen dBase-Komponenten, mit denen du direkt auf dBase zugreifen kannst. (z. B. TDBF)

Grüße
Mikhal

r_kerber 1. Nov 2003 12:46

Re: öffnen v. ADO Table sehr langsam
 
Hallo fredi,

du kannst es auch mal mit Advantage TDataSet Descendant for Windows von Extended Systems versuchen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:05 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