Skip to content

链式 CURD - 终结方法

终结方法执行实际数据库操作,执行后自动重置构建器状态(ResetBuilder)。详细架构参见 链式 CURD 概述


Field - 设置字段值

配合 RowCreateRowUpdate 使用,设置插入/更新的字段值。

语法

vb
Function Field(ByVal FieldName As String, ByVal Value As Variant) As cDataBase

示例

vb
' 插入时设置字段值
db.Table("users").Field("name", "张三").Field("age", 25).RowCreate

' 更新时设置字段值
db.Table("users").Where("id=?", 1).Field("name", "张三更新").Field("age", 26).RowUpdate

RowCreate - 创建行

语法

vb
Function RowCreate() As cDataBase

用法模式

vb
' 模式1:链式 Field(推荐,一行完成插入)
With db.Table("users")
    .Field "name", "张三"
    .Field "age", 25
    .Field "email", "zhang@example.com"
    .RowCreate
End With

' 模式2:传统 Rs 编辑(适合需要逐字段判断的场景)
With db.Table("users").RowCreate
    .Rs!name = "张三"
    .Rs!age = 25
    .Rs.Update
End With

' 获取插入后的自增ID
With db.Table("users")
    .Field "name", "李四"
    .RowCreate
    Debug.Print "新ID: " & db.LastInsertId
End With

RowRead - 查询行

语法

vb
Function RowRead() As cDataBase

查询结果存储在 db.Rs (Recordset) 中,可通过 db.Rs!字段名 访问。

示例

vb
' 简单查询
If db.Table("users").Where("id=?", 1).RowRead Then
    Debug.Print db.Rs!name
End If

' 链式复杂查询
db.Table("users") _
    .Columns("id,name,age") _
    .Where("age>?", 18) _
    .WhereIn("dept", "IT,HR") _
    .OrderByDesc("age") _
    .Limit(10) _
    .RowRead

' 遍历结果
If db.Table("users").Where("status=?", "active").RowRead Then
    Do Until db.Rs.EOF
        Debug.Print db.Rs!name & " - " & db.Rs!age
        db.Rs.MoveNext
    Loop
End If

RowUpdate - 更新行

语法

vb
Function RowUpdate() As cDataBase

用法模式

vb
' 模式1:链式 Field(推荐,一行完成更新)
With db.Table("users").Where("id=?", 1)
    .Field "name", "张三更新"
    .Field "age", 26
    .RowUpdate
End With

' 模式2:传统 Rs 编辑
With db.Table("users").Where("id=?", 1).RowUpdate
    .Rs!name = "张三更新"
    .Rs.Update
End With

' 批量更新(配合 WhereIn)
With db.Table("users").WhereIn("id", 1, 2, 3)
    .Field "status", "archived"
    .RowUpdate
End With

注意: RowUpdate 要求必须设置 Where 条件,防止误更新全表。


RowDelete - 删除行

语法

vb
Function RowDelete() As cDataBase

示例

vb
' 按ID删除
db.Table("users").Where("id=?", 1).RowDelete

' 批量删除
db.Table("users").WhereIn("id", 5, 8, 13).RowDelete

' 条件删除
db.Table("logs").Where("created_at<'2025-01-01'").RowDelete

' 组合条件删除
db.Table("users") _
    .Where("status=?", "expired") _
    .WhereNull("email") _
    .RowDelete

注意: RowDelete 要求必须设置 Where 条件,防止误删全表。


最后更新: 2026-06-26

VB6及其LOGO版权为微软公司所有