una de transacciones

30/09/2004 - 18:44 por reo | Informe spam
tengo un procedimiento tal que asi:


CREATE PROCEDURE proc1
as
BEGIN
BEGIN TRANSACTION


.

CODIGO

.
...
exec PROCEDURE proc2
...
COMMIT TRANS
END

y el otro procedimiento asi:

CREATE PROCEDURE proc2
as
BEGIN
.
...
CODIGO
una de las lineas de codigo tiene es del tipo
select * from OPENROWSET('SQLOLEDB','user','pwd'...
..
..
END

bueno pues al ejecutar el proc1 me da el error:

Servidor: mensaje 3910, nivel 16, estado 1, línea 1
Contexto de transacción en uso por otra sesión.

supongo que es por la instruccion openrowset, pero me es necesario hacerlo

existe algo que haga la transicion , pero salte la linea donde ejecuto
openrowset

muchas gracias

Preguntas similare

Leer las respuestas

#1 Maxi
30/09/2004 - 19:51 | Informe spam
Si has descubierto que lo hace en esa linea!! has probado en sacar eso y
usar servidores vinculados?


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"reo" escribió en el mensaje
news:
tengo un procedimiento tal que asi:


CREATE PROCEDURE proc1
as
BEGIN
BEGIN TRANSACTION


.

CODIGO

.
...
exec PROCEDURE proc2
...
COMMIT TRANS
END

y el otro procedimiento asi:

CREATE PROCEDURE proc2
as
BEGIN
.
...
CODIGO
una de las lineas de codigo tiene es del tipo
select * from OPENROWSET('SQLOLEDB','user','pwd'...
..
..
END

bueno pues al ejecutar el proc1 me da el error:

Servidor: mensaje 3910, nivel 16, estado 1, línea 1
Contexto de transacción en uso por otra sesión.

supongo que es por la instruccion openrowset, pero me es necesario hacerlo

existe algo que haga la transicion , pero salte la linea donde ejecuto
openrowset

muchas gracias







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.769 / Virus Database: 516 - Release Date: 24/09/2004
Respuesta Responder a este mensaje
#2 Adrian D. Garcia
30/09/2004 - 19:59 | Informe spam
El en SP proc2 agrega la siguiente instruccion al principio

SET XACT_ABORT ON

y al final

SET XACT_ABORT OFF

y ve si cn ello soluciona el problema.




onsultoria y Desarrollo

"reo" wrote in message
news:
tengo un procedimiento tal que asi:


CREATE PROCEDURE proc1
as
BEGIN
BEGIN TRANSACTION


.

CODIGO

.
...
exec PROCEDURE proc2
...
COMMIT TRANS
END

y el otro procedimiento asi:

CREATE PROCEDURE proc2
as
BEGIN
.
...
CODIGO
una de las lineas de codigo tiene es del tipo
select * from OPENROWSET('SQLOLEDB','user','pwd'...
..
..
END

bueno pues al ejecutar el proc1 me da el error:

Servidor: mensaje 3910, nivel 16, estado 1, línea 1
Contexto de transacción en uso por otra sesión.

supongo que es por la instruccion openrowset, pero me es necesario hacerlo

existe algo que haga la transicion , pero salte la linea donde ejecuto
openrowset

muchas gracias


Respuesta Responder a este mensaje
#3 reo
01/10/2004 - 09:52 | Informe spam
no me funciona, me sigue dando el error.

lo que me estraña es que me diga otra sesion.
puede ser que el openrowset , entre en otra base de datos con otro usuario y
contraseña distintos a los actuales.
y si es por esta causa, como puede acceder a otra base de datos , pero que
el usuario actual no tiene permisos
y si conozco otro usuario y contraseña para poder acceder a esa segunda
base.

muchas gracias


"Adrian D. Garcia" escribió en el mensaje
news:
El en SP proc2 agrega la siguiente instruccion al principio

SET XACT_ABORT ON

y al final

SET XACT_ABORT OFF

y ve si cn ello soluciona el problema.




onsultoria y Desarrollo

"reo" wrote in message
news:
> tengo un procedimiento tal que asi:
>
>
> CREATE PROCEDURE proc1
> as
> BEGIN
> BEGIN TRANSACTION
>
>
> .
>
> CODIGO
>
> .
> ...
> exec PROCEDURE proc2
> ...
> COMMIT TRANS
> END
>
> y el otro procedimiento asi:
>
> CREATE PROCEDURE proc2
> as
> BEGIN
> .
> ...
> CODIGO
> una de las lineas de codigo tiene es del tipo
> select * from OPENROWSET('SQLOLEDB','user','pwd'...
> ..
> ..
> END
>
> bueno pues al ejecutar el proc1 me da el error:
>
> Servidor: mensaje 3910, nivel 16, estado 1, línea 1
> Contexto de transacción en uso por otra sesión.
>
> supongo que es por la instruccion openrowset, pero me es necesario


hacerlo
>
> existe algo que haga la transicion , pero salte la linea donde ejecuto
> openrowset
>
> muchas gracias
>
>


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida