链式 CURD - 限制与分页
限制与分页方法控制查询结果的数量和偏移。详细架构参见 链式 CURD 概述。
Limit - 限制返回条数
非分页场景的简单截断,适用于"取最新N条"等场景。
语法
vb
Function Limit(ByVal N As Long) As cDataBase数据库适配
| 数据库 | 生成的 SQL |
|---|---|
| MySQL | LIMIT N |
| SQL Server | OFFSET 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).RowReadOffset - 偏移量
配合 Limit 使用,跳过前 N 条记录。
语法
vb
Function Offset(ByVal N As Long) As cDataBase数据库适配
| 数据库 | 生成的 SQL |
|---|---|
| MySQL | LIMIT Offset, Limit |
| SQL Server | OFFSET 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).RowReadPage - ADO 分页
基于 ADO 原生分页属性(PageSize + AbsolutePage),所有数据库类型通用。
语法
vb
Function Page(Optional Num As Long = 1, Optional Limit As Long = 10) As cDataBase参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
Num | Long | 页码(可选,默认 1) |
Limit | Long | 每页记录数(可选,默认 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 (更简洁)注意:
Page和Limit/Offset不要同时使用,二者功能重叠。Page适合标准分页场景,Limit/Offset适合灵活截断场景。
最后更新: 2026-06-26