Ver Mensaje Individual
  #7 (permalink)  
Antiguo 19/05/2005, 09:37
Avatar de davidbravof
davidbravof
 
Fecha de Ingreso: febrero-2005
Mensajes: 13
Antigüedad: 20 años, 1 mes
Puntos: 0
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!!!!