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"