mORMot2 获取数据集
mORMot2 获取数据集其实在前面想学习mORMot1部门已经网络了很多关于CRUD的示例了,但感觉总是不通透,不能很好使用,一则mORMot函数命令规则比较差别寻常,另外确实示例太少,其实代码注释倒是讲了很多。
procedure FillPrepare(Table: TOrmTable; aCheckTableName: TOrmCheckTableName = ctnNoCheck); overload;FillPrepare 步伐是为了从 TOrmTable 效果中准备获取值。
[*]在准备之后,你可以调用 FillRow(1..Table.RowCount) 来获取任何一行的值。
[*]或者,你也可以使用以下循环来遍历全部行:
while Rec.FillOne do
dosomethingwith(Rec);
[*]在这个过程中,指定的 TOrmTable 被存储在一个受保护的内部字段 fTable 中。
[*]如果你想获取表中的字段名,可以设置 aCheckTableName 参数。在匹配到当前记录之前,任何待处理的 'TableName.' 前缀都将被去除。
注意:这里的 dosomethingwith(Rec); 是一个占位符,代表你可以对每一行记录 Rec 执行某些操作。实际使用时,你必要将其替换为详细的业务逻辑代码。同时,Rec 应该是一个已经界说好的记录类型变量,用于存储从 TOrmTable 中获取的数据。
另外,TOrmCheckTableName 是一个罗列类型,ctnNoCheck 是它的一个值,表现不进行表名查抄。如果你必要查抄表名,可以通报其他相应的罗列值给 aCheckTableName 参数。
function FillPrepare(const aClient: IRestOrm; const aSqlWhere: RawUtf8 = ''; const FieldsCsv: RawUtf8 = ''; aCheckTableName: TOrmCheckTableName = ctnNoCheck): boolean; overload;FillPrepare 函数用于从 SQL WHERE 语句中获取值。
[*]如果 SQL 哀求成功,则返回 true,如果在 SQL 哀求期间发生错误,则返回 false。
[*]准备完成后,你可以通过调用 FillRow(1..Table.RowCount) 来获取任何一行的值。
[*]或者,你也可以使用以下循环来遍历全部行:
while Rec.FillOne do
dosomethingwith(Rec);
[*]函数会创建一个临时的 TOrmTable,并将其存储在一个受保护的内部字段 fTable 中。
[*]如果 aSqlWhere 留空(''),则会尽快检索全部行(例如,通过绕过外部数据库的 SQLite3 虚拟表模块)。
[*]WHERE 子句应使用内联参数(如 'Name=:('Arnaud'):')以提高服务器速度。请注意,你可以像这样使用 FormatUtf8():
aRec.FillPrepare(Client, FormatUtf8('Salary>? AND Salary
页:
[1]