Einzelnen Beitrag anzeigen

der_karlheinz

Registriert seit: 13. Sep 2007
10 Beiträge
 
#1

Zugriff auf Access DB sehr langsam

  Alt 13. Sep 2007, 22:00
Datenbank: Access • Version: 2000 • Zugriff über: ADO
Hallöchen,

ich habe ein kleines Problem mit meiner Access DB, die an die 50000 Datensätze gesammelt hat.

Wenn ich versuche einen neuen Datensatz anzulegen, hängt das ganze Programm gute 1,5 Minuten,
bis das sich wieder was bewegt.

Mit steigenden Datensätzen, wirds schlimmer, aber 50000 Datensätze sollten doch für eine Datenbank nicht viel sein?

Hier mal mein Code:

Delphi-Quellcode:
procedure TTabelle.Timer1Timer(Sender: TObject);
begin
   DataModule1.ADOtable1.Append;
   DataModule1.ADOtable1.FielValues['Date'] := now;
   DataModule1.ADOtable1.FielValues['Time'] := now;
   DataModule1.ADOtable1.FielValues['TS'] := now;
   DataModule1.ADOtable1.FielValues['Wert1'] := strtoint(SDIAppForm.E_Wert1.Text);
   DataModule1.ADOtable1.FielValues['Wert2'] := strtoint(SDIAppForm.E_Wert2.Text);
   DataModule1.ADOtable1.FielValues['Wert3'] := strtoint(SDIAppForm.E_Wert3.Text);
   DataModule1.ADOtable1.FielValues['Wert4'] := strtoint(SDIAppForm.E_Wert4.Text);
   DataModule1.ADOtable1.FielValues['Wert5'] := strtoint(SDIAppForm.E_Wert5.Text);
   DataModule1.ADOtable1.FielValues['Wert6'] := strtoint(SDIAppForm.E_Wert6.Text);
   DataModule1.ADOtable1.FielValues['Wert7'] := strtoint(SDIAppForm.E_Wert7.Text);
   DataModule1.ADOtable1.FielValues['Wert8'] := strtoint(SDIAppForm.E_Wert8.Text);
   DataModule1.ADOtable1.FielValues['Wert9'] := strtoint(SDIAppForm.E_Wert9.Text);
   DataModule1.ADOtable1.FielValues['Wert10'] := strtoint(SDIAppForm.E_Wert10.Text);
   DataModule1.ADOtable1.Post;
end;

Die Eigenschaften von ADOConnection:
Attributes.xaCommitRetaining = False
Attributes.xaAbortRetaining = False
CommandTimeout = 30
Connected = True

ConnectionString = Provider=Microsoft.Jet.OLEDB.4.0;User ID =Admin;Data Source=C:\Test\db.mdb;Mode=ReadWrite;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path:"";Jet OLEDBatabase Password="";Jet OLEDB:Engine Type=4;Jet OLEDBatabase 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 OLEDBon't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=FALSE

ConnectionTimout = 15
ConnectOptions = coConnectUnspecified
CursorLocation = clUseClient
DefaultDatabase =
IsolationLevel = ilCursorStability
KeepConnection = True
LoginPromt = False
Mode = cmReadWrite
Name = ADOConnection1
Provider = Microsoft.Jet.OLEDB.4.0
Tag = 0
___________________________________
Die Eigenschaften von DataSource1:

AutoEdit = True
DataSet = ADOTable1
Enabled = True
Name = DataSource1
Tag = 0
___________________________________
Die Eigenschaften von DataSource2:

AutoEdit = False
DataSet = ADOTable2
Enabled = True
Name = DataSource2
Tag = 0
__________________________________
Die Eigenschaften von ADOTable1

Active = True
AutoCalcFields = True
CacheSize = 1
CommandTimeout = 30
Connection = ADOConnection1
ConnectionString =
CursorLocation = clUseClient
CursorType = ctStatic
EnableBCD = True
Filter =
Filtered = False
IndexFieldNames=
IndexName=
LockType = ItOptimistic
MarshalOptions = moMarshalAll
MasterFields=
MasterSource=
MaxRecords=0
Name=ADOTable1
ReadOnly = False
TableDirect = False
TableName=Tabelle1
Tag=0
_______________________________
Die Eigenschaften von ADOTable2 unterscheiden sich von ADOTable1 nur in:

Name=ADOTable2
TableName=Tabelle2


Ich hoffe Ihr könnt mir helfen!

Mit freundlichem Gruß
der_karl
  Mit Zitat antworten Zitat