VBMAN Database Operations Example
Overview
This example demonstrates how to connect to databases and perform data operations using the VBMAN framework, supporting multiple database types (Access/MySQL/SQLServer), and implementing data services with Web API.
Project Structure
Database/
├── Form1.frm # Main form
├── Config.bas # Configuration module
├── bHello.cls # Hello business class
├── bMenus.cls # Menu business class
├── bStation.cls # Workstation business class
├── bUsers.cls # User business class
├── _data/ # Data files directory
│ └── rtxdb.mdb # Access database file
└── VBMAN_DEMO.vbp # VB6 project file
Core Code Analysis
1. Database Connection (Form1.frm)
vb
Dim HttpServer As New VBMANLIB.cHttpServer
Private Sub Form_Load()
With HttpServer
'Configure database connection, supporting Access/MySQL/SQLServer
.Database.Connect Access, App.Path & "\..\_data\rtxdb.mdb"
'Register business classes
.Router.Reg "Users", New bUsers
.Router.Reg "Station", New bStation
'Configure route mappings
.Router.Add "/users/list", "Users@List"
.Router.Add "/users/add", "Users@Add"
.Router.Add "/station/list", "Station@List"
.Start 800
End With
Shell "explorer.exe http://127.0.0.1:800/users/list"
End Sub
2. Business Class Example (bUsers.cls)
vb
Public Sub List(ctx As cHttpServerContext)
'Execute SQL query
Dim rs As Recordset
Set rs = ctx.Db.Query("SELECT * FROM Users")
'Convert result to JSON and return
With ctx.Response.Json
.BeginArray
While Not rs.EOF
.BeginObject
.Item("id") = rs("ID")
.Item("name") = rs("UserName")
.EndObject
rs.MoveNext
Wend
.EndArray
End With
End Sub
Public Sub Add(ctx As cHttpServerContext)
'Get POST parameters
Dim userName As String: userName = ctx.Request.Form("username")
'Execute insert
ctx.Db.Execute "INSERT INTO Users (UserName) VALUES ('" & userName & "')"
'Return result
ctx.Response.Json.Item("success") = True
End Sub
Feature Description
Database Support
- Support multiple databases (Access/MySQL/SQLServer)
- Unified database operation interface
- Automatic transaction handling
Business Logic Organization
- Business classes divided by functional modules
- Business classes automatically get database connections
- Support database operations and Web API integration
Web API Design
- RESTful style API design
- JSON data format
- Support for GET/POST and other HTTP methods
Technical Points
- Simple database connection configuration, supporting multiple database types
- Direct database access through ctx.Db, no need to manually manage connections
- Built-in JSON support for convenient structured data return
- Support for transaction processing and error management
Implemented Interfaces
- GET /users/list - Get user list
- POST /users/add - Add new user
- GET /station/list - Get workstation list
Extension Suggestions
- Add data validation and error handling
- Implement more complex database operations (JOIN, subqueries, etc.)
- Add database connection pool
- Add caching mechanism
- Implement database migration tools