FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Distinto valor de retorno en storedprocedure desde delfi y desde consola sql
Pues como digo, es algo que escapa a mi comprension pues no le encuentro el sentido. El problema es que cuando llamo a un procedimiento almacenado desde la consola sql me devuelve el valor correcto pero si hago la misma invocacion con los mismo parametros desde un IBQuery desde delphi el valor me da el valor que le parece "segun como tenga de calientes los biestables", es decir que el valor que me devuelve se podria decir que es indeterminado. La consulta que hago desde la consola es la siguiente:
Código:
select * from pertenece_turno(cast('30.12.1899 12:12:00' as date), cast('30.12.1899 21:12:00' as date),'Mañana') Código:
select resultado from PERTENECE_TURNO(:HORAINICIO,:HORAFIN , :CTURNO) Código:
DMInsertaInformes.IBPerteneceTurno.Close; DMInsertaInformes.IBPerteneceTurno.ParamByName('horainicio').AsDate:=inicio; DMInsertaInformes.IBPerteneceTurno.ParamByName('horafin').AsDate:=fin; DMInsertaInformes.IBPerteneceTurno.ParamByName('cturno').asstring:=DBLCBturno.Text; DMInsertaInformes.IBPerteneceTurno.Open; ['resultado']; m2:=DMInsertaInformes.IBPerteneceTurno.FieldValues['resultado']; |
#2
|
||||
|
||||
No se si es tu caso, pero error típico de cometer, es crear en la consola un juego de datos para probar algo.. en este caso puede ser tu store pertenece_turno, pero crearlo dentro de una transacción y nunca hacer el comit. Entonces lo que ejecutemos desde ese ambiente tendremos un resultado, mientras lo que ejecutemos fuera tendremos otro!
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
En el primer caso las fechas no estan correctas, ya que en sql el formato correcto es mes/dia/año, y tu estas indicando dia/mes/año.
En el caso de delphi las fechas que pongas si estaran correctas ya que al utilizar parametros y variables TDateTime, delphi convierte las fechas de forma automatica al formato correcto. De modo que no son comparables e iguales las dos queries, por lo que no tienen que darte el mismo resultado. Saludos |
#4
|
|||
|
|||
La fecha me da igual pq en el procedimiento solo cojo la hora que es lo que me interesa, la parte de la fecha no la tengo en cuenta. Al utilizar interbase 6 no puedo utilizar campos de tipo hora pero, cuando he guardado otras veces desde delphi guarda la fecha por defecto que es 30/12/1899 pero voy a comprobar lo que me dicen, gracias
|
#5
|
|||
|
|||
ok, ya lo he solucionado, era el cast de los datos en el codigo delphi que ponia date en lugar de datetime. Muchas gracias por todo
|
|
|
|