Hey,
wenn es dir nur darum geht, dass der Speicher sauber freigegeben wird, würde ich dir empfehlen auf das try..finally Konstrukt zurückzugreifen:
Delphi-Quellcode:
function TLToA.CreateDateien(i: Integer): Boolean;
var q : TADOQuery;
/////////////////////////////
function SQL_Out : String;
var s : TSQL;
begin
s:=TSQL.create;
try
s.Add := 'Select Distinct exportline';
s.Add := 'From ('+SQL_Main(i)+')';
s.Add := 'Where gruppe = '+s.Ora_StrOfStr(q.FieldByName('gruppe').AsString);
Result:=s.Text;
finally
s.Free;
end;
end;
/////////////////////////////
// Ich arbeite sehr gerne auch mit with ... do
function SQL_Out : String;
begin
with TSQL.create do
try
Add := 'Select Distinct exportline';
Add := 'From ('+SQL_Main(i)+')';
Add := 'Where gruppe = '+Ora_StrOfStr(q.FieldByName('gruppe').AsString);
Result := Text;
finally
Free;
end;
end;