PDA

Ver la Versión Completa : Ayuda con consulta


JorgeBec
20-10-2003, 20:26:27
Que tal comunidad!, la pregunta es la siguiente, estoy poniendo la siguiente sentencia en el parametro Query de un componente query

select * from m_inoutline where to_char(updated,'DD/MM/YY') =:xFecha

xFecha es una variable que se asigna del siguiente modo...

xFecha := DateToStr(DTFecha.Date);

si hago esta consulta en la consola de oracle si me despliega los registros, que estará mal???

cabe señalar que DTFecha es un componente DateTimePicker...

agradeceré sus respuestas...

JorgeBec
20-10-2003, 20:27:57
Perdon se me olvido comentar que en el grid al que esta asignado este set de datos no me despliega nada...

marcoszorrilla
20-10-2003, 20:33:51
Pureba a asignarlo así, puesto que todo parece apuntar a un formato incorrecto de conversión de la fecha.

xFecha := FormatDatetime('dd/mm/yyyy',DTFecha.Date);

Un Saludo

JorgeBec
21-10-2003, 00:29:12
Gracias por tu respuesta, en efecto con FormatDateTime, puedo obtener el formato 'dd/mm/yyyy' pero sigue sin filtrarme los registros, por el debugger todo esta bien, obtengo el formato de acuerdo lo requerido pero algo pasa que no me filtra la información, presiento que no es la senetencia, lo chistoso es que pongo directa la fecha en la sentencia sql con el formato mencionado y si me lo hace, me suena a cuestion de parametros, cabe señalar que xFecha esta como definida de la siguiente manera

var
xFecha: string

esto despues de la sección de implementation

xFecha en las propiedades de params en el componente query la
puse del tipo ftString...que estará mal???

marcoszorrilla
21-10-2003, 08:27:17
Prueba a mostrar antes el SQL construido con ShowMessage(MiConsulta.Text);

De esta manera ves como te construye el SQL que funciona y luego pruebas con el resto de sentencias y vistas las diferentecias creo que podrás arreglarlo sin mucho problema.

Un Saludo.

JorgeBec
21-10-2003, 17:09:32
ok marcos ya hice lo que me pediste y en efecto cuando despliego la consulta armada, me despliega un signo de interrogación en los parametros. No se a que se deba...pareciera que se trunca el valor a la hora de armar la consulta...

creo yo que esto confirma la teoría de que hay algo mal en los parametros....

te doy mas información...

los parametros estan declarados como variables...

en params al tipo de dato de le estoy poniento ftString...

que estará pasando???

JorgeBec
21-10-2003, 17:24:55
Ok, ya quedo lo que pasa es que a los parametros no deben ser variables, hay que pasarle los valores de la siguiente forma...


qryVisualizar.Params[0].AsString := FormatDatetime('dd/mm/yyyy',DTFecha.Date);


te agradezco tus atenciones marcos, gracias...

jachguate
21-10-2003, 20:25:16
Creoq eu el problema parte porque estas tratando de comparar dos cadenas de caracteres, cuando bien podes pedirle a oracle que compare dos fechas... no?

algo como:

select * from m_inoutline where updated =:xFecha

donde xfecha será del tipo tDateTime

y luego haras algo como:


miconsulta.ParamByName['xFecha'].AsDateTime := Date;


De esa forma te evitas toda la complejidad de convertir la fecha a una cadena que sea compatible con la cadena que generará el servidor, a partir de otra fecha.

Hasta luego

;)