05/06/2007, 00:41
|
| | Fecha de Ingreso: mayo-2004
Mensajes: 85
Antigüedad: 20 años, 8 meses Puntos: 1 | |
Re: .NET y Transcacciones Hola y gracias por responder,
me refiero a controlar las transacciones de manera que si borro datos de una tabla y en el siguiente acceso a datos intento borrar otroa registros y me da error, pues entonces que la primera inserción no se realice, es decir, que no se produzca el commit.
Tengo un proyecto web y dos proyectos VB de clases con los que hago el acceso a datos.
Os pongo un ejemplo:
Parte WEB:
<html> ....
<script runat=server>...
i = obj.Borrar(g_empCodigo, m_grcCodigo, m_prdCodigo, g_idiCodigo)
...
</script>...
</html>
Parte Negocio (akí intento controlar las transacciones):
************************************************
Public Function Borrar(ByVal in_empCodigo As String, ByVal in_grcCodigo As String, ByVal in_prdCodigo As String, ByVal in_idiCodigo As String) As Integer
Using scope As New System.Transactions.TransactionScope()
Try
//hace el borrado de la primera tabla
Borrar = m_Obj_Idi.Borrar(in_empCodigo,in_grcCodigo,in_prdC odigo, "")
//en este borrado da error por FK a otra tabla
Borrar = m_Obj.Borrar(in_empCodigo, in_grcCodigo, in_prdCodigo)
scope.Complete()
Catch Err As Exception
scope.Dispose()
End Try
End Using
End Function
************************************************** **
Me está pasando lo siguiente, cuando ejecuto la anterior función desde WEB me hace la primera consulta, pero en la segunda me está dando una excepción pq intento borrar un registro con una clave ajena a otra tabla (es lógico que salte excepción) por lo que no pasa por la instrucción scope.Complete() y aún así no controla la transacción dejando borrada el primer registro ...
Sabéis pq puede ser?
saludos. |