PDA

Ver la Versión Completa : Consulta con una variable en un Query


Ricsato
24-11-2003, 22:54:47
Hola a todos, me gustaria que alguien me dijera como hacer una consulta en una sentencia de un Query pero con una variable, por ejemplo, si tengo el siguiente codigo:

With SQL do Begin
add('Select * from Transportes.db');
add('Where Tipo="Carga"');
end

en este ejemplo la busqueda es con una cadena declarada, pero como le hago, para que en lugar de especificar "Carga", sea una variable que adquiere valores segun las opciones seleccionadas. Como tengo que concatenar esa variable en esa linea de codigo?

Espero me puedan ayudar, gracias.

roman
24-11-2003, 23:08:40
with Query.SQL do
begin
add('Select * from Transportes.db');
add('Where Tipo=:tipo');
end;

Query.ParamByName('tipo').AsString := 'Carga';


// Saludos

Ricsato
25-11-2003, 22:38:30
Que tal Roman, creo que no me explique bien, o tal vez no comprendi tu ejemplo, mira lo que trato de hacer es esto:

Carga: String; // una variable para almacenar una cadena
...........
Carga:=Edit1.Text; // El valor lo leo en un Edit y se guarda en
// en carga.
....................... // Despues utilizando SQL, quiero realizar
// un filtro para que me haga la seleccion con el
//valor leido.

With QReporteGral do begin
Close;
With SQL do Begin
Clear;
add('Select * from Transportes.db');
add('Where Tipo="Carga"');
end;
end;

lo que no se, es como especificarle al codigo SQL, que Carga no
es un campo, que es una variable, que contiene un valor que le estoy dando.

O si existe algun otro metodo para realizar lo que quiero hacer, te lo agradecere mucho, gracias.

Saludos desde la tierra cachanilla!!

roman
25-11-2003, 22:47:37
Ricsato comentó:
lo que no se, es como especificarle al codigo SQL, que Carga no
es un campo, que es una variable, que contiene un valor que le estoy dando.


El ejemplo que te puse hace exactamente lo que quieres. Para especificar una variable en sql usas un identificador precedido por ':'. En algúm momento debes sustituir el parámetro por el valor real y eso es lo que hace ParamByName.

// Saludos