mORMot 增、查、改、删 —— CRUD(一)
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,简答的逻辑构成了万千精彩的计算机世界。