Public Function OpenConnection(ByVal sHostName As String, _ ByVal sUserName As String, _ ByVal sPassword As String, _ ByVal sDbName As String, _ Optional ByVal lPortNum As Long = 3306, _ Optional ByVal lFlags As MYSQL_FLAG, _ Optional ByVal cs_name As String) As MYSQL_CONNECTION_STATE Dim lNumber As Long
If m_MYSQL = 0 Then Err.Raise vbObjectError + 1, "DBConn.OpenConnection", "Couldn't obtain a connection handler." Exit Function Else If UBound(MyOptArr) > 0 Then Dim i As Integer 'set options For i = 1 To UBound(MyOptArr) Select Case MyOptArr(i).eOption Case MYSQL_OPT_CONNECT_TIMEOUT mysql_options m_MYSQL, MYSQL_OPT_CONNECT_TIMEOUT, MyOptArr(i).sArg Case MYSQL_OPT_COMPRESS mysql_options m_MYSQL, MYSQL_OPT_COMPRESS, 0 Case MYSQL_OPT_NAMED_PIPE mysql_options m_MYSQL, MYSQL_OPT_NAMED_PIPE, 0 Case MYSQL_INIT_COMMAND mysql_options m_MYSQL, MYSQL_INIT_COMMAND, MyOptArr(i).sArg Case MYSQL_READ_DEFAULT_FILE mysql_options m_MYSQL, MYSQL_READ_DEFAULT_FILE, MyOptArr(i).sArg Case MYSQL_READ_DEFAULT_GROUP mysql_options m_MYSQL, MYSQL_READ_DEFAULT_GROUP, MyOptArr(i).sArg End Select Next i End If If mysql_real_connect(m_MYSQL, gServerName, gUserID, gUserPass, gDbName, gPortNum, m_CESApp.SoftWare, gOptions) = 0 Then 'connection attempt NG ... CheckForError "DBConn.OpenConnection" pRealClose Else m_State = MY_CONN_OPEN
If cs_name <> "" Then gCharacterSetName = UCase(gCharacterSetName)
lNumber = mysql_set_character_set(m_MYSQL, gCharacterSetName) If lNumber > 0 Then CheckForError "DBConn.OpenConnection" End If End If End If End If OpenConnection = m_State End Function
ByVal sUserName As String, _
ByVal sPassword As String, _
ByVal sDbName As String, _
Optional ByVal lPortNum As Long = 3306, _
Optional ByVal lFlags As MYSQL_FLAG, _
Optional ByVal cs_name As String) As MYSQL_CONNECTION_STATE
Dim lNumber As Long
Me.CloseConnection
OpenConnection = m_State gServerName = sHostName
gUserID = sUserName
gUserPass = sPassword
gDbName = sDbName
gPortNum = lPortNum
gOptions = lFlags
gCharacterSetName = cs_name
m_MYSQL = mysql_init(m_MYSQL)
If m_MYSQL = 0 Then
Err.Raise vbObjectError + 1, "DBConn.OpenConnection", "Couldn't obtain a connection handler."
Exit Function
Else
If UBound(MyOptArr) > 0 Then
Dim i As Integer
'set options
For i = 1 To UBound(MyOptArr)
Select Case MyOptArr(i).eOption
Case MYSQL_OPT_CONNECT_TIMEOUT
mysql_options m_MYSQL, MYSQL_OPT_CONNECT_TIMEOUT, MyOptArr(i).sArg
Case MYSQL_OPT_COMPRESS
mysql_options m_MYSQL, MYSQL_OPT_COMPRESS, 0
Case MYSQL_OPT_NAMED_PIPE
mysql_options m_MYSQL, MYSQL_OPT_NAMED_PIPE, 0
Case MYSQL_INIT_COMMAND
mysql_options m_MYSQL, MYSQL_INIT_COMMAND, MyOptArr(i).sArg
Case MYSQL_READ_DEFAULT_FILE
mysql_options m_MYSQL, MYSQL_READ_DEFAULT_FILE, MyOptArr(i).sArg
Case MYSQL_READ_DEFAULT_GROUP
mysql_options m_MYSQL, MYSQL_READ_DEFAULT_GROUP, MyOptArr(i).sArg
End Select
Next i
End If If mysql_real_connect(m_MYSQL, gServerName, gUserID, gUserPass, gDbName, gPortNum, m_CESApp.SoftWare, gOptions) = 0 Then
'connection attempt NG ...
CheckForError "DBConn.OpenConnection"
pRealClose
Else
m_State = MY_CONN_OPEN
If cs_name <> "" Then
gCharacterSetName = UCase(gCharacterSetName)
lNumber = mysql_set_character_set(m_MYSQL, gCharacterSetName)
If lNumber > 0 Then
CheckForError "DBConn.OpenConnection"
End If
End If
End If
End If OpenConnection = m_State
End Function