Delphi - CONSULTAR POR MEDIO DE SQL

 
Vista:

CONSULTAR POR MEDIO DE SQL

Publicado por Horacio (24 intervenciones) el 05/04/2003 00:00:25
HOLA AMIGOS, ESTOY HACIENDO UNA CONSULTA EN DELPHI 5 (BAJO WINDOWS ME) Y QUERIA SABER SI ME PUEDEN EXPLICAR COMO HACER UNA CONSULTA CON SQL A UNA BASE DE DATOS PARADOX 7, POR EJEMPLO, QUIERO CONSULTAR UN RANGO DE DATOS DESDE EL 12/03/03 HASTA 12/04/03. TAMBIEN QUERIA SABER SI ME PUEDEN EXPLICAR MAS A FONDO COMO REALIZAR LA CONSULTA MEDIANTE CODIGO POR QUE NO ENTIENDO MUCHO ESA PARTE. DESDE YA AGRADECIDO. HORACIO
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

EL obejto TQuery

Publicado por Francisco (4 intervenciones) el 05/04/2003 05:09:32
Tenes que usar un objeto TQuery que es igual al objeto TTable nada más que en vez de especificar una tabla en TableName (que no existe en TQuery), ingresa el código SQL en la propiedad, valga la redundancia, SQL.
Por ultimo llamas al metodo Open.

Para mas detalle fijate en la ayuda de Delphi ya que podes pasarle parámetros a la consulta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:EL obejto TQuery

Publicado por Ernesto D'Spirito (706 intervenciones) el 05/04/2003 10:25:00
Horacio: como dice Francisco, usa un componente Query (lo encontrarás en la Paleta de Componentes, en la pestaña Data Access). Asigna la propiedad DatabaseName (puede ser un alias, o un directorio), y para hacer el resto por código te muestro un ejemplo:

1) Establecer la consulta SQL. Eso se hace a través de la propiedad SQL:

Query1.Active := False; // Cierra la consulta si estuviera abierta
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM tabla');
Query1.SQL.Add('WHERE fecha BETWEEN :fecha1 AND :fecha2');

En el ejemplo asumí que la tabla se llama "tabla", y que el campo por el que quieres filtrar se llama "fecha". He usado dos parámetros ("fecha1" y "fecha2"), que como verás se preceden por dos puntos (":") para indicar que son parámetros.

Alternativamente, puedes asignar la propiedad SQL con su propiedad Text:

Query1.Active := False; // Cierra la consulta si estuviera abierta
Query1.SQL.Text := 'SELECT * FROM tabla WHERE fecha BETWEEN :fecha1 AND :fecha2';

2) Lo común suele ser dejar la consulta preparada. Eso se hace con el método prepare:

Query1.Prepare;

3) Cuando quieras abrir la consulta, primero debes asignar el valor de los parámetros:

Query1.Active := False; // Cierra la consulta si estuviera abierta

// Asigna el valor de los parámetros
Query1.ParamByName('fecha1').AsDate := EncodeDate(2003,3,12);
Query1.ParamByName('fecha2').AsDate := EncodeDate(2003,4,12);

Query1.Active := True; // Abre la consulta

Así tienes el rango del 12/03/03 al 12/04/03 que querías.

Espero que te sea de utilidad.

Ernesto D'Spirito
http://www.latiumsoftware.com/es/index.php
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar