Ver Mensaje Individual
  #3  
Antiguo 12-02-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Los filtros estan muy bien para cosas simples, no los fuerces más de lo necesario.

Indiscutiblemente el query es más eficiente y flexible, a menos que tengas 200 campos en la misma tabla y la restricción del where deje pasar millones de registros.

Hablando en serio, si te parece engorroso andar con objetos Tquery prueba algo tan simple como:

Código Delphi [-]
procedure CambiaQryA(qry:Tquery; sql: String);
begin
  if qry = NIL then
    qry := createqry(DTM.DtbPPal, sql)
  else
  begin
  if qry.Active then
    qry.Close;
  qry.SQL.Clear;
  qry.SQL.Text := sql;
  qry.Open;
  end;

end;
function CreateQry(dtb: TDatabase; SQL: String): TQuery;
begin
    Result := Tquery.Create(NIL);
try
    Result.DatabaseName := dtb.DatabaseName;
    Result.SessionName  := dtb.SessionName;
    Result.SQL.Clear;
    Result.SQL.Text := SQL;

    Result.Prepare;
    Result.Open;
  except
    FreeAndNil(Result);
    raise;
  end;
end;
Solamente tienes que llamar a 'CambiaQry' y despues asociar el Datasource del grid a esta query.

Acuerdate de usar Freeandnil(qry) al cerrar la ventana en cuestion.

Saludos
Responder Con Cita