PDA

Ver la Versión Completa : Un poco extraño


barman
11-07-2003, 18:57:40
buenas


Veran dentro de un procedimiento llamo a otro, vale y esto es lo extraño.

...
...
...

for select nota,nombre from alumnos where fecha >=:dfecha
and fecha <= :hfecha into :mnota,:mnombre
do beginn

if (mnota < 5 ) !!! sin vacaciones
.....
if (mnota > 5)
......
etc.

Pues no hace nada, sin embargo

for select nota,nombre from alumnos
into :mnota,:mnombre
do beginn

if (fecha >=:dfecha and fecha <= :hfecha)
then begin
if (mnota < 5 ) !!! sin vacaciones
.....
if (mnota > 5)
......
end.

Lo he comprobado y lo que me j... el procedure es la fecha, los parametros de pasada no estan mal, ya que como esta dentro de otro procedure que usa los mismos valores de fecha y el otro hace lo que debe.

A alguien se le ocurre algo.

guillotmarc
11-07-2003, 19:15:22
Hola.

En ese código ¿ donde llamas a un procedimiento dentro de otro ?.

Los dos códigos llevan beginn en lugar de begin.

El primer código no tiene las asignación de campos a variables, o sea la linea into :mnota,:mnombre

La verdad es que deberías explicar un poco mejor el problema, y quizá poner el código entero de tus procedimientos.

Saludos.

murci
11-07-2003, 20:17:32
Creo que el pb lo tienes en que las fechas en interbase si trabajas con el SQL DIALECT = 1, en realidad son TimeStamp. En ese caso debes usar la funcion extract e ir comparando la fecha campo por campo o definir los parametros de la sql como datetime y asignarle valores a la hora:
00:00:00 para la menor y
23:59:59 para la mayor.

Espero que te sirva de algo.

barman
14-07-2003, 10:36:14
Gracias por vuestras respuestas

guillotmarc lo de beginnnn es una errata al escribir, si no me daria error en la sentencia al compilar. Claro que tiene asignacion me llevo dos dias saber que me devolvia valores raros si no se le asignaban.

murci las fechas estan bien, es mas he usado una tabla auxiliar para grabarlas y verificarlas.

Solo que es raro que en la select si le paso como valores de acotacion los campos fecha no haga nada.

En breve pondre el codigo, ahora no lo tengo delante.