Delphi - consulta SQL

 
Vista:

consulta SQL

Publicado por Xaino (2 intervenciones) el 27/07/2007 01:41:28
Buenas, tengo un formulario con un dbgrid ascodiado a un tdatasource y a un tquery en el que quiero mostrarlos registros en el que un campo este entre dos cifras (ej: entre 1000 y 2000). Esas dos cifras son dos valores calculados en otro formulario edit2.text y edit3.text.

En el TQuery hay una propiedad ke es un SQL que es donde introduzco la sentencia SQL.

Como seria?

Select
lista."campo1",
lista."campo2",
lista."campo3",
lista."campo4"
From "mi base de datos"
As lista
where (campo4>form1.edit2.text) & (campo4<form1.edit3.text)
order by campo4

¿¿¿¿¿¿¿¿¿¿¿¿¿??????????????????

Donde esta el error?
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
sin imagen de perfil

RE:consulta SQL

Publicado por jose luis (157 intervenciones) el 27/07/2007 14:49:05
La secuencia debe de ser T-SQL
SELECT campo1, campo2, campo3, campo4
FROM tabla
WHERE (campo4> :parametro1) and (campo3 < :parametro2)
ORDER BY campo4

para utilizar los parametros

TQuery1.Close;
TQuery1.ParamByName('parametro1').Text := edit2.text;
TQuery1.ParamByName('parametro2').Text := edit3.text;
TQuery1.Open;
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:consulta SQL

Publicado por Xaino (2 intervenciones) el 27/07/2007 15:14:16
Muchas gracias por contestar usando lo que me has dicho al ejecutar la aplicacion me sale un error "type mismatch in expresion".

copio y pego el codigo.

en el SQL puse lo siguiente

Select
lista."COOR",
lista."PLANETA",
lista."JUGADOR",
lista."PUNTOS"
From "C:\Documents and Settings\Xaino\Mis documentos\Xwars\inactivos\lista.dbf"
As lista
WHERE (PUNTOS > :parametro1) and (PUNTOS < :parametro2)
order by PUNTOS

en el form1 tengo 2 editbox
edit2
edit3

en el form2 tengo esto

procedure TForm2.FormCreate(Sender: TObject);
begin
Query1.Close;
Query1.ParamByName('parametro1').Text := form1.edit2.text;
Query1.ParamByName('parametro2').Text := form1.edit3.text;
Query1.Open;
end;
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
sin imagen de perfil
Val: 65
Oro
Ha mantenido su posición en Delphi (en relación al último mes)
Gráfica de Delphi

RE:consulta SQL

Publicado por E.T. (1244 intervenciones) el 28/07/2007 21:42:05
Pudiera ser que los parametros no tengan definido su tipo de dato, selecciona tu query y ve a las propiedades, ve a Params y pincha el boton con 3 puntos "..." se te abrirá una pequeña ventana donde deben de estar tus parámetros seleciona el primero y ve a sus propiedades y busca algo como "Data Type" no estoy seguro, y selecciona el tipo de dato del que es tu campo "Puntos" y haces lo mismo con el segundo parámetro, si no es eso no se que pueda ser pues la consulta parece correcta
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
sin imagen de perfil

RE:consulta SQL

Publicado por jose luis (157 intervenciones) el 29/07/2007 05:38:40
Normalmente eso sucede cuando hay diferncias entre tipos de datos, por ejemplo un parametro es numerico y le pasas un text, si la base de datos esta hecha en access no hay problema en colocarle el tipo de parametro, lo que creo que puede pasar es que uno de los campos es de otro tipo y lo estas pasando como text, pero es viable lo que tu estas comentando en el post
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