Hejsa
Jeg sidder og fifler lidt med et større program som jeg begynder at få
hastighedsproblemer med. Hver gang jeg skal skrive/læse fra min database
fryser computeren i noget den ligner 1/4-->1/2 sekund. Hvis man så skal
gennemløbe en masse data og åbne og lukke forskellige tabeller går det helt
amok og ventetiden bliver acceptable
i min Create åbner jeg min database med:
var
Jet:_dbengine;
work:workspace;
db:database;
begin
jet:=codbengine.create;
work:=jet.workspaces.item[0];
db:=work.opendatabase('../dbdir/data.mdb',0,false,'');
og ved læsning/skrivning bruger jeg oftest:
var
rec: recordset;
begin
rec:=db.openrecordset('MinTabel',dbopendynaset,0,dbPessimistic);
Nogle gange bliver jeg nødt til at åbne recordsets inde i loops og det er
her mine største problemer ligger. F.eks. noget al'a:
Rec:=db.openrecordset('MinTabel',dbopendynaset,0,dbPessimistic);
While not rec.EOF do
DataRecord:=db.openrecordset('MinTabelNrTo',dbopendynaset,0,dbPessimistic);
Desværre tager min openrecordset som sagt utrolig lang tid og jeg håbede at
nogen herinde kunne fortælle mig hvad jeg gør forkert eller hvad jeg
eventuelt kan gøre for at øge hastigheden? Det kan ikke passe at jeg er den
eneste der skal læse forholdsvis mange data ud fra en access database....Jeg
vil nødigt skulle skifte system da jeg efterhånden har rundet de 20k linjer
i det her projekt, men hvis det er det der skal til så er der jo ikke noget
at gøre. Det her kører i hvertfald for langsomt....
Håber i kan "tænde lyset" for mig herinde
MVH
Thomas