Sp_dropuser powerbuilder

¿Hola experto como estás?
Tengo un problema al ejecutar un sp que ejecuta sp_droplogin y sp_dropuser, no me permite ejecutarlo porque me dice que no se puede ejecutar con una transacción abierta.
Powerbuilder 10 y sql server 2005
Te pongo más o menos el código que ejecuto
SP
REATE PROCEDURE [dbo].[usp_drop_user]
@usuario VARCHAR(12)
AS
EXEC bd.dbo.sp_dropuser @usuario
EXEC master.dbo.sp_droplogin @usuario
Powerbuilder
DECLARE usp_drop_user PROCEDURE FOR dbo.usp_drop_user
@usuario=:ls_usuario
Using SQLCA;
EXECUTE usp_drop_user;
lint_resultado = SQLCA.sqlcode
IF lint_resultado = -1 THEN
Error
Microsoft OLE DB Provider for SQL Server
El procedimiento 'sys.sp_revokedbaccess' no se puede ejecutar dentro de una transacción.
Ejecutando el sp desde la consola de sql server funciona bien, no a si desde powerbuilder.
La acción se realiza presinandoelbotón eliminar.
Saludos.
Respuesta
1
Dos cosas a indicarte.
1. Tienes que crearte una nueva transacción no el SQLCA, y con el usuario que te conectes a la BD tiene que tener el ROL DE SA, pero si te conectas directamente con SA no seria necesario. Ya que para que puedas usar esos SP desde algún aplicativo tienes que conectarte con un usuario que tenga los privilegios "maximos"
2. Antes de tu EXECUTE usp_drop_user; deberias colocar un autocommit= true
OBJETOCONEXION.autocommit = true
EXECUTE usp_drop_user;
OBJETOCONEXION.autocommit = false
PDT:
Les dejo un Link con algunos manuales.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas