![]() |
AW: SQL Abfrage dauert ewig
cool DANKE ;)
Flutscht einwandfrei ;) |
AW: SQL Abfrage dauert ewig
Zitat:
|
AW: SQL Abfrage dauert ewig
Ich schließe mich dieser Frage an, da dies hier nur Fehler produzier:
Delphi-Quellcode:
---------------------------
procedure TForm1.btn1Click(Sender: TObject);
var liste:TStringList; sz1 :Integer; sz2 : Integer; sz3 : Integer; begin liste:=TStringList.Create; sz1:=0; sz2:=0; sz3:=0; adoquery1.Close; sz1:=gettickcount; adoquery1.open; sz2:=GetTickCount; Form1.Caption:=IntToStr(liste.Count)+' '+IntToStr(sz2-sz1)+' >>Open '+IntToStr(sz3-sz2)+' >>GetData'; Application.ProcessMessages; if not(adoquery1.Eof) then repeat liste.Add(adoquery1.Fields[0].asstring); adoquery1.Next; until adoquery1.eof; sz3:=GetTickCount; adoquery1.Close; Form1.Caption:=IntToStr(liste.Count)+' '+IntToStr(sz2-sz1)+' >>Open '+IntToStr(sz3-sz2)+' >>GetData'; liste.Free; end; procedure TForm1.btn2Click(Sender: TObject); var liste:TStringList; sz1 :Integer; sz2 : Integer; sz3 : Integer; begin liste:=TStringList.Create; sz1:=0; sz2:=0; sz3:=0; adoquery1.Close; sz1:=gettickcount; adoquery1.open; sz2:=GetTickCount; Form1.Caption:=IntToStr(liste.Count)+' '+IntToStr(sz2-sz1)+' >>Open '+IntToStr(sz3-sz2)+' >>GetData'; Application.ProcessMessages; if not(adoquery1.recordset.Eof) then repeat liste.Add(adoquery1.Recordset.Fields[0].value); adoquery1.Recordset.MoveNext; until adoquery1.eof; sz3:=GetTickCount; adoquery1.Close; Form1.Caption:=IntToStr(liste.Count)+' '+IntToStr(sz2-sz1)+' >>Open '+IntToStr(sz3-sz2)+' >>GetData'; liste.Free; end; Project1 --------------------------- Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record. --------------------------- OK --------------------------- Gruß K-H |
AW: SQL Abfrage dauert ewig
auch bei
Delphi-Quellcode:
While not adoquery1.RECORDSET.EOF
|
AW: SQL Abfrage dauert ewig
Zauberei:
Delphi-Quellcode:
warum wird
while not(adoquery1.recordset.Eof) do begin
liste.Add(adoquery1.Recordset.Fields[0].value); adoquery1.Recordset.MoveNext; end;
Delphi-Quellcode:
so verschmäht?
repeat ..until .eof
Gruß K-H P.S. Das fluppt wirklich!! |
AW: SQL Abfrage dauert ewig
Ist IMHO nicht intuitiv ....
Ich denke das Problem lag hier ... adoquery1.Eof statt adoquery1.recordset.Eof |
AW: SQL Abfrage dauert ewig
*schäm*
*schäm* Du hast Recht, bleibt die Frage warum. Zumindest die OH von 2006 warnt davor das RecordSet zu nutzen: Zitat:
K-H |
AW: SQL Abfrage dauert ewig
@Value is NULL:
Welche konkreter Typ hat bei dir eigentlich der Parameter
Delphi-Quellcode:
?
DestList: TStrings
Ich frage deshalb, weil es ein Riesenunterschied (Faktor 50) in Bezug auf die Performance ist ob man eine TStringList (schnell) oder TMemoStrings (langsam) verwendet. |
AW: SQL Abfrage dauert ewig
@p80286
nicht ganz umsonst, TAdoDataset packt einen Haufen Watte um die Recordsets, mit den Varianten bei NULL-Sätzen gilt es umzugehen ... die "Oberfläche" ab TADODataset kann sich desynchronisieren etc. Aber für Fälle wie in o.g. Anforderung sehe ich kaum Probleme ... |
AW: SQL Abfrage dauert ewig
Soweit ich mich erinnere, war 'Next' der Pferdefuß
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:14 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