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,简答的逻辑构成了万千精彩的计算机世界。

posted @ 2022-04-04 15:00  海利鸟  阅读(739)  评论(0编辑  收藏  举报