Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/03/2013, 19:17
adrian_
 
Fecha de Ingreso: abril-2010
Mensajes: 229
Antigüedad: 14 años
Puntos: 3
Procedimiento almacenado firebird

Hola Foro

Tengo un procedimiento almacenado que tiene que hacer una insercion el problema es que no respeta la condicion del if is null creo que la variable contiene algo distinto quiza sea por el tipo de datos esta es varchar, ya que si la condicion la pngo en not is null funciona perfecto.

Si algiuen sabe como depurar en interbase como se hace en vb que muestra los errores les agradeceria mucho me dijeran como, o bien si alguien sabe que tipo de dato contiene mi variable que no es un espacio en blanco por de igual forma no funciona tambien

Agradezco su ayuda.

Este es el código

FOR SELECT DISTINCT UPPER(TS.D_MUNICIPIO), SM.NOMBRE, SM.ID_ESTADO
FROM TEMPORAL_SEPOMEX TS
LEFT OUTER JOIN ZZ_SPM_MUNICIPIOS SM
ON TS.D_MUNICIPIO = SM.NOMBRE
WHERE SM.ID_ESTADO = 1 AND SM.NOMBRE IS NULL
INTO :MSepomex, :MBase, :MBestado DO

BEGIN
FOR SELECT MAX(ID_MUNICIPIO)
FROM ZZ_SPM_MUNICIPIOS
WHERE ID_ESTADO = 1
INTO :MaximoID DO
BEGIN
MAXID =:MaximoID;
NuevoId =:MaximoID + 1;
CONCATENADOS =:NuevoId;
END
IF(:MBase IS NULL) THEN
BEGIN
INSERT INTO ZZ_SPM_MUNICIPIOS
(ID_MUNICIPIO, ID_ESTADO, NOMBRE, RANGO1, RANGO2,
RANGO3, RANGO4, RANGO5, RANGO6, RANGO7, RANGO8)
VALUES(:NuevoId, :MBestado, :MSepomex, NULL, NULL,
NULL, NULL, NULL, NULL, NULL, NULL);
END
ELSE
EXISTENTES_BASE = MBase;
EXISTENTES_SEPOMEX = MSepomex;
END
SUSPEND;