error rarisimo pagina php

Hola:

Al grabar los datos ejecutando el siguiente procedimiento desde php , nos agrega el siguiente simbolo “‹”, y un espacio que no lo muestra, en desarrollo funciona perfecto pero en produccion tira ese error, y por lo tanto no graba nada. URGENTE!!!

PROCEDURE sp_actualizarDatosPrincipales1()‹

este es el procedimiento:

– *******************************************************************************
– SIU - SGA - Sistema de Gestion de Alumnos
– Version 2.05.0

– Procedure sp_i_dc_activ
– Graba el Dato Censal de actividades del alumno.
– *******************************************************************************
– DROP PROCEDURE sp_actualizarDatosPrincipales1;
CREATE PROCEDURE sp_actualizarDatosPrincipales1 ( pUa varchar(5) ,
pNro_inscripcion varchar(10) ,
pnombre varchar(255) , --nombre colegio
pdescripcion varchar(255) , --descripcion titulo
ptipoTitulo Varchar(255), --tipo titulo
pfecha_nacimiento Date,
panio_egreso Integer
)
RETURNING smallint, – 0- OK, -1- Error, 1-Observaciones
varchar(255); – mensaje

DEFINE iStatus smallint;
DEFINE vcMsg varchar(255);

–variables para el manejo de excepciones
DEFINE sql_err integer;
DEFINE isam_err integer;
DEFINE error_info varchar(76);
DEFINE v_user_error varchar(10);

– variables locales.
DEFINE vcNivel VARCHAR(20);
DEFINE vd_Fecha DATE;
DEFINE vc_Rtn CHAR(1);

DEFINE vc_colegio LIKE sga_coleg_sec.colegio;
DEFINE vc_titulo LIKE sga_titulos_sec.descripcion;
DEFINE vc_tipoTitulo LIKE sga_orient_voc_rec.orient_voc_rec;

– blk de excepciones
ON EXCEPTION SET sql_err, isam_err, error_info
LET iStatus = sql_err ;
LET vcMsg = isam_err ;
RETURN iStatus, vcMsg;
END EXCEPTION;

BEGIN

– inicializaciones.
LET iStatus = 0 ;
LET vcMsg = ‘Ok’;

– busco codigo colegio
SELECT MIN(colegio)

                INTO vc_colegio
  FROM sga_coleg_sec
WHERE sga_coleg_sec.nombre = pnombre;

– busco codigo titulo

SELECT MIN(titulo_secundario)

              INTO vc_titulo
  FROM sga_titulos_sec where descripcion = pdescripcion;

– busco tipo titulo

             IF ptipoTitulo = 'Gestión Pública' THEN
                          LET ptipoTitulo = 'Entidad oficial'; 
             ELSE IF ptipoTitulo = 'Gestión Privada' THEN
                          LET ptipoTitulo = 'Entidad privada';                  
             END IF
             END IF

SELECT orient_voc_rec
              INTO vc_tipoTitulo
  FROM sga_orient_voc_rec where descripcion = ptipoTitulo;

– DATO principales.
UPDATE sga_personas

SET colegio_secundario = vc_colegio, titulo_secundario  = vc_titulo, anio_egreso_sec = panio_egreso, fecha_nacimiento = pfecha_nacimiento,orient_voc_rec = vc_tipoTitulo

WHERE unidad_academica = pUa
AND nro_inscripcion = pNro_inscripcion;

RETURN iStatus, vcMsg;

END;
END PROCEDURE;
– *******************************************************************************
– SELECT * FROM sga_orient_voc_rec

Muchas gracias!!!

Hola

Me parece que el problema está en php y no en informix.
Si no entiendo mal el llamado al procedure es

PROCEDURE sp_actualizarDatosPrincipales1()‹

mientras que el procedure tiene los siguientes argumentos

sp_actualizarDatosPrincipales1 ( pUa varchar(5) , pNro_inscripcion varchar(10) , pnombre varchar(255) , --nombre colegio pdescripcion varchar(255) , --descripcion titulo ptipoTitulo Varchar(255), --tipo titulo pfecha_nacimiento Date, panio_egreso Integer )

Emilio

Hola emilio:

Probamos cambiar el encoding y sigue el error. El procedimiento en informix funciona. Nos agrega ese simbolo que esta al final del nombre.

muchas gracias!!!

podés adjuntar la página que hace el llamado?

En donde agrega ese caracter y el espacio en blanco?

Pareciera un problema de encoding del archivo php.
¿Ese archivo tiene el mismo encoding que el resto de los archivos y que el mismo archivo en el equipo de desarrollo?

Hola:

Nos fijamos y el error era que cuando queria grabar, no se que hacia, pero los acentos y ñ, las codificaba mal y no las grababa. Solo en este procedimiento en otro como paises, provincias, etc, lo grababa bien. La unica diferencia es que los colegios estaban en mayuscula. Como teniamos que salir les sacamos los acentos y ñ, un laburo terrible.
Puede ser algo del “CLIENT_LOCALE” del setnet o algo del sistema operativo windows 2000 server?

Muchas gracias!!!

Deberias ver la combinación de los siguientes parámetros del cliente (setnet32) que esta instalado donde esta el sistema:

DB_LOCALE
CLIENT_LOCALE
SERVER_LOCALE

muchas gracias!!!