cortesía de mi proyecto Norring
visítenme también aquí
http://septimasolucion.blogspot.mx/
Código
Imports
MySql.Data.MySqlClient
'Imports
MySql.Data.MySqlClient
Namespace
sepsol.databases
Public Class SingletonMySql
'Singleton
implemented just for mysql commands
#Region "Attributes"
Private
Shared _instance As
SingletonMySql = Nothing
Private
_dataobjects As IConnections.DataObject
Private
_stringconnection As String
Private
_driver As IConnections.Driver
Private
_host As String
Private
_port As String
Private
_user As String
Private
_database As String
Private
_password As String
Private
_others1 As String
Private
_allowvariables As String
Private
_characterset As String
'Objects
MySQLCommand
Private
_mysqlconnection As MySqlConnection
'Status
Private
_statusconnection As Boolean
'Load
configuration
Private
_ifileconfig As IFileManager
#End Region
#Region "Builders"
Private
Sub New()
'Init
first vars
_statusconnection = False
_dataobjects = New IConnections.DataObject
_dataobjects = IConnections.DataObject.MySQLCommand
_stringconnection = Nothing
'Load
external config for norring apps
_ifileconfig = New
ReadXML
_ifileconfig.FileName = "NorringCredentials.xml"
_ifileconfig.FilePath = "c:\nor"
_ifileconfig.LoadFile(IFileManager.FileType.Xml)
'Collect
data for connection
_driver = New
IConnections.Driver
_host =
_ifileconfig.XMLFileReturnNodeValue("host")
'Nothing
_port =
_ifileconfig.XMLFileReturnNodeValue("port")
''Nothing
_user =
_ifileconfig.XMLFileReturnNodeValue("user")
'Nothing
_database =
_ifileconfig.XMLFileReturnNodeValue("database")
'Nothing
_password =
_ifileconfig.XMLFileReturnNodeValue("password")
'Nothing
_others1 =
_ifileconfig.XMLFileReturnNodeValue("others")
'Nothing
_allowvariables =
_ifileconfig.XMLFileReturnNodeValue("allowvariables")
_characterset =
_ifileconfig.XMLFileReturnNodeValue("characterset")
'Build
connection string
_string_formysql51()
'Instance
of mysql connecion
_mysqlconnection = New MySqlConnection
'Initialize
connection
StartConnection()
End Sub
#End Region
#Region "Properties"
Public ReadOnly Property
IsConnected() As Boolean
Get
Return
_statusconnection
End
Get
End Property
Public ReadOnly Property
MySQLConnectionSingleton As MySqlConnection
Get
Return
_mysqlconnection
End
Get
End Property
#End Region
#Region "Methods"
Private
Sub _string_formysql51()
Select
Case _dataobjects
'data
source=localhost;database=temp_db;Uid=temp;password=pass;character set=utf8;
Case
IConnections.DataObject.MySQLCommand
_stringconnection = "Server=" & _host & ";" & _
"Database=" & _database & ";" & _
"UID=" & _user & ";" & _
"Pwd="
& _password & ";" & _
"Port=" & _port & ";" & _
"Connect Timeout=5;" & _
"Allow User Variables=" &
_allowvariables & ";" & _
"Pooling=True;" &
"character set=" & _characterset
& ";"
Case
Else
'NOT
IMPLEMENTED
End
Select
End Sub
Private
Sub StartConnection()
If Not _statusconnection Then
Try
_mysqlconnection.ConnectionString = _stringconnection
_mysqlconnection.Open()
'flag
_statusconnection = True
Catch
'flag
_statusconnection = False
End
Try
End
If
End Sub
Private
Sub StopConnection()
If
_statusconnection Then
_mysqlconnection.Close()
'flag
_statusconnection = False
End
If
End Sub
Public Shared Function
GetInstance() As SingletonMySql
If
_instance Is Nothing
Then
_instance = New SingletonMySql()
End
If
Return
_instance
End Function
#End Region
#Region "Properties"
Public Property DriverWork As
IConnections.Driver
Get
Return
_driver
End
Get
Set(ByVal value As
IConnections.Driver)
_driver = value
End
Set
End Property
Public Property Host As String
Get
Return
_host
End
Get
Set(ByVal value As String)
_host = value
End
Set
End Property
Public Property Password As String
Get
Return
_password
End
Get
Set(ByVal value As String)
_password = value
End
Set
End Property
Public Property Port As String
Get
Return
_port
End
Get
Set(ByVal value As String)
_port = value
End
Set
End Property
Public Property User As String
Get
Return
_user
End
Get
Set(ByVal value As String)
_user = value
End
Set
End Property
#End Region
End Class
End Namespace
No hay comentarios:
Publicar un comentario