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")
Next2. 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 104. 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) _
.QueryParam5. 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 If6. 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")
Next7. 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 poolObject 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 collectionExecution 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 IDDocumentation Index
| Document | Description |
|---|---|
| Quick Start | Quick start guide |
| Connection Management | Database connection and connection pool management |
| Query Operations | Detailed SELECT query explanation |
| Execute Operations | INSERT, UPDATE, DELETE operations |
| Transaction Processing | Complete transaction usage guide |
| Pagination | Detailed pagination explanation |
| Parameterized Queries | Parameterized queries and SQL injection prevention |
| Utility Methods | Common utility methods explanation |
| Advanced Features | Advanced features and best practices |
Dependencies
| Component | Description |
|---|---|
| Microsoft ActiveX Data Objects 2.8 Library | ADO core library, must be referenced |
| Microsoft Scripting Runtime | Dictionary object support |
| ToolsList.bas | Recordset to Collection conversion utility |
| ToolsFso.bas | File 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