Skip to content

链式 CURD - 限制与分页

限制与分页方法控制查询结果的数量和偏移。详细架构参见 链式 CURD 概述


Limit - 限制返回条数

非分页场景的简单截断,适用于"取最新N条"等场景。

语法

vb
Function Limit(ByVal N As Long) As cDataBase

数据库适配

数据库生成的 SQL
MySQLLIMIT N
SQL ServerOFFSET 0 ROWS FETCH NEXT N ROWS ONLY
Access自动转为 ADO 分页机制

示例

vb
' 取最新10条记录
db.Table("logs").OrderByDesc("id").Limit(10).RowRead

' 取前5条活跃用户
db.Table("users").Where("status=?", "active").OrderBy("name").Limit(5).RowRead

Offset - 偏移量

配合 Limit 使用,跳过前 N 条记录。

语法

vb
Function Offset(ByVal N As Long) As cDataBase

数据库适配

数据库生成的 SQL
MySQLLIMIT Offset, Limit
SQL ServerOFFSET N ROWS FETCH NEXT M ROWS ONLY

示例

vb
' 跳过前20条,取10条(第3页,每页10条)
db.Table("users").OrderBy("id").Limit(10).Offset(20).RowRead

' 排行榜:跳过前100名,取50名
db.Table("scores").OrderByDesc("score").Limit(50).Offset(100).RowRead

Page - ADO 分页

基于 ADO 原生分页属性(PageSize + AbsolutePage),所有数据库类型通用。

语法

vb
Function Page(Optional Num As Long = 1, Optional Limit As Long = 10) As cDataBase

参数说明

参数类型说明
NumLong页码(可选,默认 1)
LimitLong每页记录数(可选,默认 10)

示例

vb
' 第2页,每页20条
db.Table("users").OrderBy("id").Page(2, 20).RowRead

' 链式分页查询
db.Table("users") _
    .Where("status=?", "active") _
    .OrderByDesc("created_at") _
    .Page(1, 10) _
    .RowRead

' 与传统 Sql 方式的对比
' 传统: db.Sql("SELECT * FROM users").Page(1, 10).Fetch
' 链式: db.Table("users").Page(1, 10).RowRead  (更简洁)

注意: PageLimit/Offset 不要同时使用,二者功能重叠。Page 适合标准分页场景,Limit/Offset 适合灵活截断场景。


最后更新: 2026-06-26

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