PDA

Ver la Versión Completa : Consulta parametrica


jefraub
24-02-2005, 09:18:38
Hola a todos os explico mi problema:

En un form tengo un grid, el cual carga los datos a traves de una consulta SQL muy simple, el problema es que en determinado momento quiero que en ese grid se puedan filtrar las entradas ya que se trata de una base de datos con muchisimas entradas, por lo que quiero hacer en determinados momentos consultas paramétricas.

Mi pregunta es: ¿Puedo hacer una consulta en la que si quiero pasarle parámetros lo haga y en caso de que quiera sacar todas las entradas pueda tambien? Es decir, que al entrar en ese form me saque todas y mas tarde si se quiere filtrar que se le puedan pasar parámetros a esa consulta.

No se si me he explicado correctamente, espero que me hayais entendido.

Un saludo y muchas gracias por todo.

jplj
24-02-2005, 09:58:37
Quizá puedas solucionarlo usandos distintas consulta para cada caso:




function TMain.Abrir_Consulta(SQL: String; Valores: Array of Variant): Boolean;
var
i: Integer;
begin
ADOQuery_1.Active:= false;
ADOQuery_1.SQL:= SQL;
for i:= 0 to High(Valores) do
ADOQuery_1.Parameters[i].Value:= Valores[i];
ADOQuery_1.Active:= true;

// Aquí quedaría también por "intentar" poner la posición de la rejilla en la
// misma posición que tenía antes de cambiar la consulta.
end;

procedure TMain.Consulta_Inicial;
begin
Abrir_Consulta( 'SELECT * FROM MiTabla;', [])
end;

procedure TMain.Consulta_Usuario(User: String);
begin
Abrir_Consulta( 'SELECT * FROM MiTabla WHERE Usuario = :P0;', [User]])
end;

...



Otra posibilidad es utiliar la propiedad Filter del componente.

Un Saludo.