Skip to content

Connection Management ​

This document details the database connection management features of the cDataBase class, including connection, disconnection, and connection pool.


Table of Contents ​


Database Connection ​

Connect Method ​

The Connect method is used to establish a database connection.

Syntax ​

vb
Function Connect( _
    ByVal DbType As enumDbType, _
    Optional ByVal DbAddress As String = "127.0.0.1,1433", _
    Optional ByVal username As String = "sa", _
    Optional ByVal password As String = "Sa123456", _
    Optional ByVal DefaultDataBase As String = "master") As Boolean

Parameters ​

ParameterTypeDescription
DbTypeenumDbTypeDatabase type (required)
DbAddressStringDatabase address (optional, default "127.0.0.1,1433")
usernameStringUsername (optional, default "sa")
passwordStringPassword (optional, default "Sa123456")
DefaultDataBaseStringDefault database (optional, default "master")

Return Value ​

  • True - Connection successful
  • False - Connection failed (view error via LastErr)

Example ​

vb
Dim db As New VBMAN.cDataBase

' SQL Server connection
If db.Connect(VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "password", "mydb") Then
    Debug.Print "Connection successful"
Else
    Debug.Print "Connection failed: " & db.LastErr
End If

Supported Database Types ​

enumDbType Enumeration ​

vb
Public Enum enumDbType
    Access = 1    ' Microsoft Access
    Mysql = 2     ' MySQL
    MsSql = 3     ' Microsoft SQL Server
    Csv = 4       ' CSV file
End Enum

SQL Server Connection ​

vb
' Basic connection
db.Connect VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "password", "master"

' Using named instance
db.Connect VBMAN.enumDbType_MsSql, "SERVER\INSTANCE,1433", "sa", "password", "mydb"

' Using Windows authentication (requires modifying connection string)
' Note: Need to modify connection string internally to support Windows authentication

MySQL Connection ​

vb
' Basic connection (default port 3306)
db.Connect VBMAN.enumDbType_Mysql, "localhost:3306", "root", "password", "testdb"

' Specify port
db.Connect VBMAN.enumDbType_Mysql, "192.168.1.100:3306", "user", "pwd", "mydb"

' Using Chinese comma (auto-converted)
db.Connect VBMAN.enumDbType_Mysql, "localhost,3306", "root", "pwd", "testdb"

Access Connection ​

vb
' Connect to Access database file
db.Connect VBMAN.enumDbType_Access, "C:\data\mydb.mdb"

' Using relative path (auto-converted to absolute path)
db.Connect VBMAN.enumDbType_Access, "data\mydb.mdb"

CSV Connection ​

vb
' Connect to CSV file directory
db.Connect VBMAN.enumDbType_Csv, "C:\data\csvfiles"

' CSV files are treated as tables for querying
db.Sql("SELECT * FROM data.csv").Query

Connection String Configuration ​

Auto-generated Connection Strings ​

The library automatically generates connection strings based on database type:

SQL Server ​

Driver={SQL Server};Server=127.0.0.1,1433;Uid=sa;pwd=password;Database=mydb;

MySQL ​

Driver={MySQL ODBC 5.1 Driver};Server=localhost:3306;Uid=root;pwd=password;Database=testdb;

Access ​

Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\data\mydb.mdb;

CSV ​

Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=C:\data\csvfiles

Custom Connection String ​

If you need to use a custom connection string, set it before connecting:

vb
' Note: Need to modify internally to support custom connection strings
' Or use ADO Connection object directly
Set db.Conn = New ADODB.Connection
db.Conn.ConnectionString = "Provider=SQLOLEDB;Data Source=...;..."
db.Conn.Open
db.IsConnect = True

Connection State Management ​

IsConnect Property ​

The IsConnect property indicates the current connection state.

vb
' Check connection state
If db.IsConnect Then
    Debug.Print "Connected"
Else
    Debug.Print "Not connected"
End If

CheckConnection Method ​

The CheckConnection method checks the connection state and attempts to reconnect.

vb
' Check and reconnect
If Not db.CheckConnection Then
    Debug.Print "Connection lost, attempting to reconnect..."
    db.Connect VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "pwd", "mydb"
End If

Connection State Check ​

Check connection state before executing operations:

vb
If Not db.IsConnect Then
    Debug.Print "Database not connected"
    Exit Sub
End If

' Execute query
db.Sql("SELECT * FROM users").Query

Connection Pool Management ​

ConnInst Method ​

The ConnInst method creates or retrieves a database instance from the connection pool.

Syntax ​

vb
Function ConnInst(ByVal InstName As String, Optional ByVal IsCloneMasterConnection As Boolean = True) As cDataBase

Parameters ​

ParameterTypeDescription
InstNameStringInstance name (required)
IsCloneMasterConnectionBooleanWhether to clone master connection (optional, default True)

Example ​

vb
Dim db As New VBMAN.cDataBase

' Master connection
db.Connect VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "pwd", "mydb"

' Create connection instance 1 (clone master connection)
Dim db1 As VBMAN.cDataBase
Set db1 = db.ConnInst("db1", True)
db1.Sql("SELECT * FROM table1").Query

' Create connection instance 2 (independent connection)
Dim db2 As VBMAN.cDataBase
Set db2 = db.ConnInst("db2", False)
db2.Connect VBMAN.enumDbType_Mysql, "localhost:3306", "root", "pwd", "testdb"
db2.Sql("SELECT * FROM table2").Query

' Get existing instance
Set db1 = db.ConnInst("db1")

ConnInstRemove Method ​

The ConnInstRemove method removes an instance from the connection pool.

Syntax ​

vb
Sub ConnInstRemove(Optional ByVal InstName As String)

Example ​

vb
' Remove specified instance
db.ConnInstRemove "db1"

' Remove all instances
db.ConnInstRemove ""

Connection Pool Usage Scenarios ​

Scenario 1: Multi-database Operations ​

vb
Dim db As New VBMAN.cDataBase

' Main database
db.Connect VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "pwd", "mydb"

' Log database
Dim dbLog As VBMAN.cDataBase
Set dbLog = db.ConnInst("log", False)
dbLog.Connect VBMAN.enumDbType_Mysql, "192.168.1.100:3306", "loguser", "pwd", "logdb"

' Use different databases
db.Sql("SELECT * FROM users").Query
dbLog.Sql("INSERT INTO logs (msg) VALUES ('test')").Exec

Scenario 2: Dynamic Database Switching ​

vb
Dim db As New VBMAN.cDataBase

' Create connections dynamically based on configuration
Function GetDatabase(sConfigName As String) As VBMAN.cDataBase
    Dim dbInst As VBMAN.cDataBase
    Set dbInst = db.ConnInst(sConfigName, False)

    ' Connect to different databases based on configuration
    Select Case sConfigName
    Case "main"
        dbInst.Connect VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "pwd", "maindb"
    Case "backup"
        dbInst.Connect VBMAN.enumDbType_Mysql, "192.168.1.100,3306", "user", "pwd", "backupdb"
    End Select

    Set GetDatabase = dbInst
End Function

' Usage
Dim dbMain As VBMAN.cDataBase
Set dbMain = GetDatabase("main")
dbMain.Sql("SELECT * FROM users").Query

Disconnect Connection ​

Disconnect Method ​

The Disconnect method closes the database connection.

Syntax ​

vb
Function Disconnect() As Boolean

Functionality ​

  • Close database connection
  • Close recordset
  • Release resources
  • Auto rollback incomplete transactions

Example ​

vb
' Disconnect
If db.Disconnect Then
    Debug.Print "Disconnected"
End If

Auto Disconnect ​

The class automatically disconnects when destroyed:

vb
Private Sub Form_Unload(Cancel As Integer)
    ' No need to manually call Disconnect, class handles automatically
    Set db = Nothing
End Sub

Error Handling ​

Error Properties ​

PropertyTypeDescription
LastErrStringLast error message (full description)
LastErrNumberLongLast error code
LastErrDescriptionStringLast error description

Error Handling Example ​

vb
' Connection error handling
If Not db.Connect(VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "pwd", "mydb") Then
    Debug.Print "Connection failed"
    Debug.Print "Error code: " & db.LastErrNumber
    Debug.Print "Error description: " & db.LastErrDescription
    Debug.Print "Full info: " & db.LastErr
    Exit Sub
End If

' Query error handling
If Not db.Sql("SELECT * FROM users").Query Then
    Debug.Print "Query failed: " & db.LastErr
    Exit Sub
End If

Common Connection Errors ​

Error 1: Cannot connect to server ​

Error code: -2147467259
Error description: [Microsoft][ODBC SQL Server Driver][DBNETLIB]SQL Server does not exist or access denied

Solution:

  • Check if database service is running
  • Verify server address and port
  • Check firewall settings

Error 2: Login failed ​

Error code: -2147467259
Error description: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'sa'

Solution:

  • Verify username and password
  • Check SQL Server authentication mode
  • Confirm user permissions

Error 3: Database does not exist ​

Error code: -2147467259
Error description: [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot open database requested in login

Solution:

  • Verify database name
  • Check if database exists
  • Confirm user has access permissions

Best Practices ​

1. Connection Management ​

vb
' Recommended: Connect when needed, disconnect when done
Private Sub ProcessData()
    Dim db As New VBMAN.cDataBase

    If db.Connect(VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "pwd", "mydb") Then
        ' Execute operations
        db.Sql("SELECT * FROM users").Query
    End If

    db.Disconnect
    Set db = Nothing
End Sub

2. Connection Reuse ​

vb
' Recommended: Keep connection for frequent operations
Private m_DB As VBMAN.cDataBase

Private Sub Form_Load()
    Set m_DB = New VBMAN.cDataBase
    m_DB.Connect VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "pwd", "mydb"
End Sub

Private Sub Form_Unload(Cancel As Integer)
    If Not m_DB Is Nothing Then
        m_DB.Disconnect
        Set m_DB = Nothing
    End If
End Sub

3. Error Handling ​

vb
' Recommended: Always check return values and handle errors
If Not db.Connect(...) Then
    MsgBox "Connection failed: " & db.LastErr, vbCritical
    Exit Sub
End If

Last Updated: 2026-01-21

VB6 and LOGO copyright of Microsoft Corporation