Каскадный Delphi ADO Query
У меня есть код запроса, который я могу вызывать каждый раз, когда мне нужно извлечь данные из базы данных, и я хочу, чтобы он был потоковым. Не уверен, как реализовать это в потоке, чтобы я мог повторно использовать этот код, в основном, я хочу этот код внутри потока. Я знаю, как создать простой запрос к базе данных внутри потока, но хочу что-то, что я могу использовать повторно. Может кто-нибудь указать мне, где я могу найти примеры для этого или быть достаточно любезным, чтобы привести пример?
Вот мой пример запроса к базе данных:
function TDBConnection.SQLOpen(const SQLStr: String): TDataSet;
var
i: Integer
begin
try
Result := TADOQuery.Create(DBConnect.FDatabaseConection);
TADOQuery(Result).Connection:=DBConnect.FDatabaseConnection;
TADOQuery(Result).CommandTimeOut:=30;
TADOQuery(Result).SQL.Text := SQLStr;
TADOQuery(Result).Open;
except
end;
end;
И это пример того, как я вызываю вышеуказанную функцию:
function TDBConnection.GetUserInfo: Boolean;
var
sqlStr: String;
Database: TDataset;
begin
sqlStr:= 'SELECT FIELD1, FIELD2, FIELD3 FROM TABLE1';
try
Dataset := SQLOpen(sqlStr);
if not Dataset.IsEmpty then
begin
//pass result to StringGrid
end;
finally
FreeAndNil(SQLParams);
FreeAndNil(Dataset);
end;
end;