Einzelnen Beitrag anzeigen

Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Geschwindigkeit beim auslesen verbessern

  Alt 9. Feb 2005, 12:39
Hai Grumble,

da fallen mir zwei Sachen auf in deinem Code.

1) Wofür ist die erste Schleife? Du prüfst doch nur ob im Feld ASSET_ID ein bestimmter Wert vorkommt. Mache das doch gleich in deinem Query:

2) Du erzeugst für jede Zeile aus der Tabelle eine neue TStringList. Das haut dir doch den Speicher voll.

Delphi-Quellcode:
// auslesen tabelle asset_data
  c:=0;
  dataexist:=false;
  DM.ZQ.SQL.Clear;
  DM.ZQ.SQL.add('SELECT * FROM ASSET_DATA WHERE ASSET_id = ' + IntToStr (caid));
  DM.ZQ.Open;
  DM.ZQ.First;
{
  while not DM.ZQ.Eof do
  begin
  if caid = DM.ZQ.Fieldbyname('ASSET_ID').asinteger then
  begin
    dataexist:=true;
    break;
  end;
  dm.ZQ.Next;
  end; //while
  if dataexist then
  begin
  DM.ZQ.First;
}

 templist:=Tstringlist.create;
 try
   templist.Delimiter:=';';
    while not DM.ZQ.Eof do
    begin
// if caid = DM.ZQ.Fieldbyname('ASSET_ID').asinteger then
// begin
        c:=c+1;
        grd_asset.Rows:=grd_asset.Rows+1;
        s:= DM.ZQ.Fieldbyname('DATA').asString;
        templist.DelimitedText:=s;
        if c = 1 then grd_asset.Cols:=templist.Count;
        for i:=1 to templist.Count do
          grd_asset.Cell[i,c]:=templist.Strings[i-1];
// end;
    DM.ZQ.Next;
  end;
 finally
   templist.Free;
 end;
// end; //if dataexist
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat