Error Transacciones

14/06/2006 - 11:36 por solusoft | Informe spam
Hola,



llevaba varias semanas tras un error, inexplicable para mi, relacionado con
transacciones.



El caso es que tenía una aplicación Windows Forms .NET en C# y SQL SERVER
2000 . En un formulario inicio una transacción, realizo una serie de select e
inserts -que son indiferentes para aceptar o cancelar la transacción-, y
acepto transacción.



La cuestión es que si falla por ejemplo un insert dentro de la transacción,
al hacer el commit, me da un error:



La petición COMMIT TRANSACTION no tiene la correspondiente BEGIN TRANSACTION

The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION



En el analizador de consultas hago:



begin tran



select * from CORC_TEMP_COMPROMISOS where it_accion = 'M'

select @@trancount



select * from CORC_TEMP_COMPROMISOS where it_accion = 'A'

select @@trancount



Insert into CORC_COMPROMISOS (cd_linea_financiera, cd_asociacion,
cd_accion, nm_grupos, nm_participantes)

values ( '5','0001',33,33,33) -- falla por triggers , es indiferente para el
commit/rollbak de la transacción

select @@trancount -- aqui vale 0 !!!!!!!!!! DEBERIA VALER 1 !!!!!



commit tran





El caso es que al fallar cualquier consulta (select, insert...) dentro de la
transacción, justo después el trancount me vale 0, y debería valer 1.



Alguién sabe cómo pu edo solucionarlo ? Es posbile que sea configuración de
SQL SERVER ??



Saludos cordiales y gracias anticipadas.
 

Leer las respuestas

#1 Maxi
14/06/2006 - 14:51 | Informe spam
Hola, si esto lo estas manejando todo desde la aplicacion y no desde un SP
deberias revisar bien como esta trabajando c#, ahi tienes el problema
realmente.

Es mas para probar podrias copiar todo ese codigo en un SP o en tu query
analizer y si funciona el problema no es de SQLServer


Salu2
Maxi [MVP SQL SERVER]
www.sqlgurus.org


"solusoft" escribió en el mensaje
news:
Hola,



llevaba varias semanas tras un error, inexplicable para mi, relacionado
con
transacciones.



El caso es que tenía una aplicación Windows Forms .NET en C# y SQL SERVER
2000 . En un formulario inicio una transacción, realizo una serie de
select e
inserts -que son indiferentes para aceptar o cancelar la transacción-, y
acepto transacción.



La cuestión es que si falla por ejemplo un insert dentro de la
transacción,
al hacer el commit, me da un error:



La petición COMMIT TRANSACTION no tiene la correspondiente BEGIN
TRANSACTION

The COMMIT TRANSACTION request has no corresponding BEGIN TRANSACTION



En el analizador de consultas hago:



begin tran



select * from CORC_TEMP_COMPROMISOS where it_accion = 'M'

select @@trancount



select * from CORC_TEMP_COMPROMISOS where it_accion = 'A'

select @@trancount



Insert into CORC_COMPROMISOS (cd_linea_financiera, cd_asociacion,
cd_accion, nm_grupos, nm_participantes)

values ( '5','0001',33,33,33) -- falla por triggers , es indiferente para
el
commit/rollbak de la transacción

select @@trancount -- aqui vale 0 !!!!!!!!!! DEBERIA VALER 1 !!!!!



commit tran





El caso es que al fallar cualquier consulta (select, insert...) dentro de
la
transacción, justo después el trancount me vale 0, y debería valer 1.



Alguién sabe cómo pu edo solucionarlo ? Es posbile que sea configuración
de
SQL SERVER ??



Saludos cordiales y gracias anticipadas.

Preguntas similares