Задачка

Найдите ошибки и оптимизируйте функцию

procedure MyProc;
var
i : Word;
A : String;
StrList : TStringList;
begin
for I := 0 to Query.RecordCount do
begin
A := Query.FieldByName('Field1').Value;
StrList.Add(A);
end;
end;




Вариант

procedure MyProc;
var
i : Word;
A : String;
StrList : TStringList;
Query : TADOQuery;
begin
Query := TADOQuery.Create(nil);
try
with Query do
begin
try
if not Active then
Active := True;
StrList := TStringList.Create;
try
for i := 0 to RecordCount - 1 do
begin
A := FieldByName('Field1').Value;
StrList.Add(A);
end;
finally
FreeAndNil(StrList);
end;
Active := False;
except
on E : Exception do
ShowMessage('ClassName/' + E.ClassName + '/' + #13#10 + 'Message' + E.Message + '/')
end;
end;
finally
FreeAndNil(Query);
end;
end;

Исходник

Leave a Reply

You must be logged in to post a comment.