La Web del Programador: Comunidad de Programadores
 
    Pregunta:  44352 - ERROR AL EJECUTAR STORE PROCEDURE EN POWER BUILDER 8
Autor:  Ciro Arrieta Miraval
Buenos dias, ojalan puedan ayudarme, aqui les planteo mi problema:

Tengo una BD en sqlserver instalada como local en mi maquina que tiene windows XP (BDLocal).
Tengo otra BD en sqlserver en red que esta en un servidor con sistema operativo Windows 2000 3Server (BDRed).
He desarrollado un store procedure en mi BDLocal, que importa datos de la BDRed, para esto en mi BDLocal active la funcion linked server.
Cuando ejecuto el store procedure en el query analizer de sqlserver, el proceso se ejecuta normal, sin problemas.
Cuando ejecuto el store procedure desde Power Builder v8, me sale el siguiente error:
“Heterogeneous queries requiere the ANSI_NULLS and ANSI_WARNINGS option to be set for the conection. This ensures consistent query semantics. Enabled these options and the reissue your query.”

De antemano muchas gracias por su ayuda.

  Respuesta:  Eduardo Lorenzo
Esa es una solucion, pero quizas no sea recomendable o no se aplique a todos los casos el cambiar esos seteos a nivel de BD, pues si tienes aplicaciones que inserten valores NULL en alguna tabla o se dispare algun WARNING por algun error de tipo, tendrias que, o bien modificar los programas o deshacer el cambio en la base de datos para que no se aborten los programas y hacerlo cada vez que necesites ejecutar la SP, lo que es bastante tedioso.....

Lo mas util, quizas, seria, poner las siguientes lineas antes del DECLARE del SP en PowerBuilder:

EXECUTE IMMEDIATE 'SET QUOTED_IDENTIFIER OFF' USING Conn;
EXECUTE IMMEDIATE 'SET ANSI_NULLS ON' USING Conn;
EXECUTE IMMEDIATE 'SET ANSI_WARNINGS ON' USING Conn;

y despues de ejecutar el SP, volver a setear los valores en OFF, aplicando estos seteos automaticamente por el programa.

Saludos
Eduardo Lorenzo

  Respuesta:  Ciro Arrieta Miraval
Gracias amigos, pero ya encontre la respuesta, el Power BUilder necesita que la BD tenga activada la opción ANSI_NULLs y ANSI_WARNINGS desde la instalacion de sqlserver, lo que hice fue ir al enterprise manager, y en propiedades del registro de mi servidor local, hay una pestaña de conección, ahi se pueden activar esa opciones.

Gracias Nuevamente