PDA

Ver la Versión Completa : Error en Query


felipe88
27-06-2007, 02:18:33
Hola compañeros del Club, hoy vengo con este problema...:confused:

Esta es la consulta que trato de hacer...

Código SQL [-] (http://www.clubdelphi.com/foros/#)
select * from proaula where fecha='24/05/2007' and campo=2 and columna=2





Y este es el error...

ISC ERROR CODE:335544334
ISC ERROR MESSAGE:
conversion error from string "24/05/2007"
STATEMENT:
TIBOInternalDataset: "<TApplication>.frmMain.dlgWisql.<TIBOQuery>.<TIBOInternalDataset>."

Alguna solucion...?

O estoy ejecutando mal la sentencia... sera que alguien me ayuda con este sencillo problema...:mad:

Gracias...:)

vtdeleon
27-06-2007, 02:22:40
Saludos

Chequea solo el ejemplo que he dado alli (http://www.clubdelphi.com/foros/showthread.php?goto=newpost&t=44878), utilizando parametros para esos casos de fecha. Lo que muy seguido pasa es que cada base de datos tienes sus formas de capturar fechas; Unos es con # y otros con comilla simple. En si depende de la base de datos. Pero usando Parametros te olvidas de eso y le dejas el trabajo sucio a la aplicacion y BBDD.

Suerte

felipe88
27-06-2007, 03:29:23
Bueno en realidad no encontre una respuesta exacta... sin hembargo probe con lo que me dices pero tampoco me funciono, lo mas "extraño" es que la misma sentencia en otra base de datos igual con tabla y datos; y ahi si me funciona... Gracias

vtdeleon
27-06-2007, 04:23:32
Verifica bien, porque si funciona bien en un lado, por que no en otro...

Saludos

jacanche
27-06-2007, 04:40:39
por que no checas el formato de fecha, quizas sea mm/dd/aaaa, por eso 24/05/2007, no es una fecha valida y te envia el mensaje de error de conversion

felipe88
27-06-2007, 15:06:42
por que no checas el formato de fecha, quizas sea mm/dd/aaaa, por eso 24/05/2007, no es una fecha valida y te envia el mensaje de error de conversion

En eralidad tienes algo de razon con esto, en la tabla que me funciono me recibio las fechas en mm/dd/aaaa siendo tipo Timestamp y directamente a la tabla. El caso es, que la forma en que guardo la fecha es desde Delphi como tipo DateTime, pero si no dejara guardar la fecha asi... no saldria error ?

Ademas eso complicaria un poco el valor que le entrego a la sentencia del Query


Código Delphi [-] (http://www.clubdelphi.com/foros/#)
Qurery1.SQL.Add('Select * from proaula where fecha=' + '''' + DateToStr(MonthCalendar1.Date + '''' + 'and campo=2 and columna=2'))




Y asi allí me sale el mismo error...

Igual si depronto pueda hacerlo asi... Como invierto el formato de fecha ?

ContraVeneno
27-06-2007, 16:02:07
¿porque no usas parámetros?


with tuquery do begin
...
SQL.Add('where fecha = :Fecha')
ParamByName('Fecha').AsDateTime := dtpFecha.DateTime;
...
end;

vtdeleon
27-06-2007, 16:48:27
Parece que a nadie le gusta usarlo de esa manera; me he dado cuenta que a muchos le gusta mas poner el "control" anidado a la cadena de la consulta.

Con paramentro siempre le dejas el trabajo a la aplicacio y/o BBDD y te olvidas de eso, que desde mi punto de vista, es fantastico.

delphi.com.ar
27-06-2007, 16:55:08
Código Delphi [-] (http://www.clubdelphi.com/foros/#)
Qurery1.SQL.Add('Select * from proaula where fecha=' + '''' + DateToStr(MonthCalendar1.Date + '''' + 'and campo=2 and columna=2'))

Tienes que tener en cuenta que en un esquema cliente-servidor la configuración regional del cliente no tiene porque ser igual a la del servidor. Para eso, te suguiero como ya hicieron varias veces, usar bind parameters, donde el dato es pasado bajo un formato standard independiente de la configuración regional. Ademas como ventaja para el servidor es mucho mas "económico" si varios clientes ejecutan consultas con bind parameters, o el mismo proceso varias veces.

Saludos!

felipe88
29-06-2007, 01:04:08
El error persiste y al intentar pasar las variables por parametros no los reconoce ( aunque no hay error ) pero sin hembargo no trae los datos...:(

vtdeleon
29-06-2007, 02:08:43
Vamos a ver, intenta usar > o < en la clausura Where, puede ser que el campo este declarado como FechaHora.

felipe88
12-07-2007, 00:06:21
...y si pongo en la base de datos el campo como tipo char..???

Podria funcionar...:rolleyes:

vtdeleon
12-07-2007, 05:37:56
...y si pongo en la base de datos el campo como tipo char..???

Podria funcionar...:rolleyes:
No lo cambies ni de relajo.

Probaste?? Como vas?

felipe88
12-07-2007, 16:29:15
Pues en realidad me funciono... aunque ahora me preocupa son otras operaciones que yo realizaba con estos formatos, cambie un poco el codigo y espero bueno resulatos sino... Dios me ayude :D