Imports MySql.Data.MySqlClient
Imports Facturacion.Dominio
Namespace Persistencia
Public Class Persistente
Public CommImporta As New MySqlCommand
Public TraImporta As MySqlTransaction
Public mConexion As MySqlConnection
Private mcommand As MySqlCommand
Private mdaFactura As MySqlDataAdapter
#Region "Metodos accesores y modificadores"
Property Conexion() As MySqlConnection
Get
Return Me.mConexion
End Get
Set(ByVal Value As MySqlConnection)
Me.mConexion = Value
End Set
End Property
Property daFactura() As MySqlDataAdapter
Get
Return Me.mdaFactura
End Get
Set(ByVal Value As MySqlDataAdapter)
Me.mdaFactura = Value
End Set
End Property
Property command() As MySqlCommand
Get
Return Me.mcommand
End Get
Set(ByVal Value As MySqlCommand)
Me.mcommand = Value
End Set
End Property
#End Region
Public Sub AbrirConexion(ByVal pBase As String)
Try
Conexion = New MySqlConnection("server=localhost;user id=root;password=root;database=nombredelabasededatos")
Conexion.Open()
Catch ex As Exception
MsgBox("ERROR: " & ex.Message)
End Try
End Sub
Public Sub CerrarConexion()
Me.Conexion.Close()
End Sub
Public Function EjecutarSQL(ByVal sentencias As String) As Boolean
Dim hecho As Boolean = False
Me.AbrirConexion(mSucursal.BaseCentral.ToString)
Dim myCommand As MySqlCommand = Conexion.CreateCommand()
Dim myTrans As MySqlTransaction
' Inicia transacción local.
myTrans = Conexion.BeginTransaction()
' Must assign both transaction object and connection
' to Command object for a pending local transaction
myCommand.Connection = Conexion
myCommand.Transaction = myTrans
Try
myCommand.CommandText = sentencias
myCommand.ExecuteNonQuery()
myTrans.Commit()
hecho = True
Catch exc As Exception
Try
myTrans.Rollback()
Catch ex As MySqlException
If Not myTrans.Connection Is Nothing Then
Throw ex
End If
End Try
Throw exc
Finally
Conexion.Close()
End Try
Return hecho
End Function
Public Function Devolver(ByVal CadenaConsulta As String) As DataTable
Try
Dim suc As String = mSucursal.Base.ToString
Me.AbrirConexion(mSucursal.Base.ToString)
Dim sql As MySqlCommand = New MySqlCommand
sql.CommandTimeout = 300
sql.Connection = Conexion
sql.CommandText = CadenaConsulta
sql.CommandType = CommandType.Text
Dim DA As New MySqlDataAdapter(sql)
Dim DT As New DataTable
DA.Fill(DT)
Me.CerrarConexion()
Return DT
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Function
End Class
End Namespace