Hola gente como estan,
Bueno sobre lo q he podido entender al trabajar en capas lo que buscas es abstraer el acceso a datos, pues bien la funcionalidad del ejecutar las sentencias segun entiendo debe de estar encapsulada en algun objeto no?
Lo que yo hago es usar una funcion que solicita un arrray de strings q contienen sentencias Inset, update, delete, o exe de stores y devuelve un bool yndicando si se eejecuto satisfactoriamente o no
La funcion es como sigue
Código:
Public Function EjecutaComando(ByVal sql() As String) As Boolean
'Ejecuta una sentencia insert, update o delete segun el query
Dim cn As SqlConnection = RetornaConexion()
Dim comm As New SqlCommand
Dim _transaction As SqlTransaction
Dim i As Integer
_transaction = cn.BeginTransaction()
comm = New SqlCommand(sql(0), cn)
comm = cn.CreateCommand
comm.Connection = cn
comm.Transaction = _transaction
For i = 0 To sql.Length
If i = 0 Then cn.Open()
Try
comm.CommandText = sql(i)
comm.ExecuteNonQuery()
If i = sql.Length Then _transaction.Commit()
Catch ex As Exception
_transaction.Rollback()
'Seria genial si aqui implementara un metodo
'que reporte el error en
'el visor de sucesos no?
Return False
Finally
If i = sql.Length Then cn.Close()
End Try
Next
cn.Close()
Return True
End Function
De este modo en mi capa de negocio acumulo las sentencias q deseo ejecutar ya sea en una sentencia sql o llamando a un store como gustes y luego envio todas las sentencias a ejecutarce si fallara obtendre un false.
Bueno es como pienso q podria ser

, pero nadie es dueño de la verdad, asi q espero sus comentarios para mejoras o q no deberia hacer

, ademas de haber contribuido en algo.
Saludos!!!!