Skip to content

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

  1. Database Support

    • Support multiple databases (Access/MySQL/SQLServer)
    • Unified database operation interface
    • Automatic transaction handling
  2. Business Logic Organization

    • Business classes divided by functional modules
    • Business classes automatically get database connections
    • Support database operations and Web API integration
  3. Web API Design

    • RESTful style API design
    • JSON data format
    • Support for GET/POST and other HTTP methods

Technical Points

  1. Simple database connection configuration, supporting multiple database types
  2. Direct database access through ctx.Db, no need to manually manage connections
  3. Built-in JSON support for convenient structured data return
  4. Support for transaction processing and error management

Implemented Interfaces

  1. GET /users/list - Get user list
  2. POST /users/add - Add new user
  3. GET /station/list - Get workstation list

Extension Suggestions

  1. Add data validation and error handling
  2. Implement more complex database operations (JOIN, subqueries, etc.)
  3. Add database connection pool
  4. Add caching mechanism
  5. Implement database migration tools

Base on VB6 component release