Wątek Delphi ADO Query
Mam kod zapytania, który mogę wywołać za każdym razem, gdy muszę pobrać dane z bazy danych, i chcę, aby był wątkowany. Nie wiem, jak zaimplementować ten kod w wątku, abym mógł ponownie użyć tego kodu, w zasadzie chcę, aby ten kod znajdował się w wątku. Wiem, jak utworzyć proste zapytanie do bazy danych w wątku, ale chcę coś, co mogę ponownie wykorzystać. Czy ktoś może mi wskazać, gdzie mogę znaleźć przykłady lub być na tyle uprzejmy, aby dać przykład?
Oto moje przykładowe zapytanie do bazy danych:
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;
Oto przykład tego, jak nazywam powyższą funkcję:
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;