Skip to content

cDataBase Class Library Development Documentation

cDataBase Class Library - VB6 database operation wrapper based on ADO, developed by 215879458@qq.com

Table of Contents


Overview

cDataBase is a lightweight database operation wrapper designed for VB6, fully based on ADO (ActiveX Data Objects), providing a simple and easy-to-use API with complete feature support.

Key Features

  • Multi-database Support - Supports Access, MySQL, SQL Server, CSV and other databases
  • Connection Pool Management - Supports multi-database connection instance pool, dynamic database object management
  • Pagination Support - Built-in pagination for SQL Server, MySQL, Access
  • Parameterized Queries - Supports parameterized queries, effectively preventing SQL injection attacks
  • Transaction Processing - Complete transaction support with automatic rollback mechanism
  • Asynchronous Execution - Supports asynchronous SQL execution for improved performance
  • Result Set Conversion - Automatically converts Recordset to Dictionary collection
  • Utility Methods - Rich utility methods to simplify common operations

Key Features

1. Simple API Design

The library uses chained call design with clean, readable code:

vb
' Use after referencing VBMAN.dll in VB6 project
Dim db As New VBMAN.cDataBase

' Connect to database
db.Connect VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "password", "mydb"

' Query data (chained call)
db.Sql("SELECT * FROM users WHERE id > ?").Param("id", 100).QueryParam

' Get results
Dim i As Long
For i = 1 To db.Rows.Count
    Debug.Print db.Rows(i)("name")
Next

2. Multi-database Type Support

vb
' SQL Server
db.Connect VBMAN.enumDbType_MsSql, "127.0.0.1,1433", "sa", "pwd", "master"

' MySQL
db.Connect VBMAN.enumDbType_Mysql, "localhost:3306", "root", "pwd", "testdb"

' Access
db.Connect VBMAN.enumDbType_Access, "C:\data\mydb.mdb"

' CSV
db.Connect VBMAN.enumDbType_Csv, "C:\data\csvfiles"

3. Pagination Support

vb
' Page 2, 10 items per page
db.Sql("SELECT * FROM users").Page(2, 10).Query

' Automatically converts to pagination SQL for corresponding database
' SQL Server: OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY
' MySQL: LIMIT 10 OFFSET 10

4. Parameterized Queries (SQL Injection Prevention)

vb
' Use parameterized queries, safe and reliable
db.Sql("SELECT * FROM users WHERE name = ? AND age > ?") _
    .Param("name", "John", VBMAN.adVarChar) _
    .Param("age", 18, VBMAN.adInteger) _
    .QueryParam

5. Transaction Processing

vb
' Start transaction
db.TransBegin

' Execute multiple operations
db.Sql("INSERT INTO users (name) VALUES ('user1')").Exec
db.Sql("INSERT INTO users (name) VALUES ('user2')").Exec

' Commit transaction (auto rollback on failure)
If db.TransCommit Then
    Debug.Print "Transaction committed successfully"
End If

6. Automatic Result Set Conversion

vb
' Automatically converted to Dictionary collection after query
db.Sql("SELECT * FROM users").Fetch

' Access first row data
Debug.Print db.Row("name")
Debug.Print db.Row("age")

' Iterate all rows
Dim i As Long
For i = 1 To db.Rows.Count
    Debug.Print db.Rows(i)("name")
Next

7. Connection Pool Management

vb
' Create connection instance
Dim db1 As VBMAN.cDataBase
Set db1 = db.ConnInst("db1")

' Use independent connection instance
db1.Sql("SELECT * FROM table1").Query

' Remove connection instance
db.ConnInstRemove "db1"

Architecture Design

Class Hierarchy

cDataBase (Database Operation Class)
├── Connection (ADODB.Connection) - Database connection
├── Recordset (ADODB.Recordset) - Recordset
├── Command (ADODB.Command) - Parameterized query command
└── Connections (Dictionary) - Connection pool

Object Relationship Diagram

Database Object (cDataBase)
├── Main Connection (Conn)
│   ├── Recordset (Rs)
│   └── Command (Cmd) - Parameterized query
└── Connection Pool (Connections)
    ├── Connection Instance 1 (cDataBase)
    │   └── Independent connection
    ├── Connection Instance 2 (cDataBase)
    │   └── Independent connection
    └── ...

Data Flow

Query Flow

1. Sql("SELECT ...") - Set SQL statement
2. Page(1, 10) - Optional: Set pagination
3. Query() - Execute query
4. Rs - Get Recordset
5. Rows - Auto-convert to Dictionary collection

Execution Flow

1. Sql("INSERT/UPDATE/DELETE ...") - Set SQL statement
2. Param("name", value) - Optional: Add parameters
3. Exec() / ExecParam() - Execute operation
4. LastInsertId() - Optional: Get last inserted ID

Documentation Index

DocumentDescription
Quick StartQuick start guide
Connection ManagementDatabase connection and connection pool management
Query OperationsDetailed SELECT query explanation
Execute OperationsINSERT, UPDATE, DELETE operations
Transaction ProcessingComplete transaction usage guide
PaginationDetailed pagination explanation
Parameterized QueriesParameterized queries and SQL injection prevention
Utility MethodsCommon utility methods explanation
Advanced FeaturesAdvanced features and best practices

Dependencies

ComponentDescription
Microsoft ActiveX Data Objects 2.8 LibraryADO core library, must be referenced
Microsoft Scripting RuntimeDictionary object support
ToolsList.basRecordset to Collection conversion utility
ToolsFso.basFile path handling utility

Compatibility

  • VB6/VBA - Fully compatible
  • Windows - Windows XP and above
  • Database - Access, MySQL, SQL Server, CSV
  • ADO Version - ADO 2.8 and above

License

Developed based on VBMAN project


Author

Database Library: 215879458@qq.com


Last Updated: 2026-01-21

VB6 and LOGO copyright of Microsoft Corporation