Consulta Delphi ADO roscada

Tengo un código de consulta al que puedo llamar cada vez que necesito recuperar datos de la base de datos, y quiero que se enlace. No estoy seguro de cómo implementar esto en un hilo para que pueda reutilizar este código, básicamente, quiero este código dentro de un hilo. Sé cómo crear una consulta de base de datos simple dentro del hilo, pero quiero algo que pueda reutilizar. ¿Puede alguien indicarme dónde puedo encontrar ejemplos para esto o ser lo suficientemente amable para dar un ejemplo?

Aquí está mi consulta de base de datos de muestra:

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;

Y esta es una muestra de cómo estoy llamando a la función anterior:

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;

Respuestas a la pregunta(1)

Su respuesta a la pregunta