Найдите ошибки и оптимизируйте функцию
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;