CRUD 展开就是 c create 创建,r read 阅读, u update 更改, d delete 删除,这是关系数据库里面的主要操作,
在mORMot 里面一切皆为对象,那么他的 增、删、改、查的基本操作是怎么样的呢?假设已经定义好了数据库对象,这里还是对象。
- mORMot 的增加,Sql 对应的是insert
Account := TAccount.Create; Account.Name := TGuidxxxxx; Account.Account := 123; Account.Sno := 'abcd'; if db.Add(Account, True) = 0 then begin ShowMessage('失败'); end;
db.Add 返回 TSQLRecord ID/RowID 值,错误为 0
- mORMot 的查询,Sql 对应的是Select
acc := TAccount.Create(db, 'Name=?', [edt1.Text]); if acc<>nil then begin //Do Samething edt3.Text := acc.Name; edt1.Text := acc.Account.ToString; edt2.Text := acc.Sno; end;
这里的理解是,用DB数据集,构建 Name定义为xxx 的 TAccount对象。如果没有可用的数据集,自然构建失败,返回 nil。
- mORMot 的修改,Sql 对应的是update
acc := TAccount.Create(db, 'Name=?', [edt1.Text]); if acc<>nil then begin //Do Samething acc.Name :=edit2.Text; acc.Account := 456; acc.Sno :=‘QWE’; end; if db.Update(acc) then begin mmo1.Lines.Add('更新成功: ' + acc.Account.ToString ); end else begin mmo1.Lines.Add('更新失败: ' + acc.Account.ToString );
这是建立在查询成功的基础上,所以上面很重要!
- mORMot 的删除,Sql 对应的是Delete
同Update,仅仅是变成了 db.Delete(aRec);
- 多表关联,一对多,多对多关系
FillMany、ManySelect、ManyDelete……
mORMot 库的体系太复杂了,估计要慢慢研究。
后记:好多人打趣,这程序不久是“增、删、改、查”吗?确实。也就是这些简单的动作,构成了基本的业务逻辑。如同0,1,简答的逻辑构成了万千精彩的计算机世界。