Ver la Versión Completa : Procedimiento en Firebird con parámetro NULL
Hola foro!
Tengo un procedimiento en Firebird que recibe una serie de parámetros y uno de ellos en alguna ocasión puede ser nulo. Si lo ejecuto con IBExpert y marco este argumento como nulo va bien, pero desde mi código no logro pasar este argumento como nulo, me lo toma como 0 con lo que el resultado obtenido no es el deseado.
Gracias
jhonny
06-07-2007, 15:01:21
Pero, ¿Porque no puedes hacerlo desde tu codigo?, ¿Te muestra algún error?, Seguramente sera de ayuda que nos muestres el codigo en cuestión.
En firebird tengo un procedimiento almacenado:
CREATE PROCEDURE REGISTRAR (
mivariable smallint)
as
begin
// Aquí va mi código
end
Y si ejecuto este procedimiento con el IBExpert marcando "mivariable" como NULL pues no pasa nada.
En cambio en mi aplicación tengo el código:
procedimiento.Clear;
procedimiento.ParamByName('mivariable').AsString := 3;
procedimiento.Prepare;
procedimiento.ExecProc;
Si en la segunda linea ponto 3, 4 o algún otro número mi base de datos se modifica correctamente, pero si no doy valor a ese parámetro o trato de ponerle a nulo me modifica la base de datos igual que si le paso un cero.
mamaro
06-07-2007, 18:13:38
Hola .. no tengo un delphi a mano ahora pero, creo que por más que sean parámetros en null se les debe asignar el valor de la siguiente forma:
...parambyname('nombredelparametro').value:=null;
Eso ya lo he probado y en el procedimiento me toma ese parámetro como 0 en lugar de NULL.
Hasta que de con la forma de hacerlo "bien" he modificado el procedimiento de tal forma que nunca sea necesario recibir ese parámetro con valor 0 y que cuando detecte que tiene ese valor lo cambie a nulo.
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.