# 重量级的选手DAL_CA,增删查改一类搞定

在上篇文章中,我们用生成器来生成DAL_CA类的代码. 而DAL_CA的代码一生成就拥有增删改保存撤消的方法。 在框架的设定中,MSSQLHelper是轻量级的DAL层类,可以用来执行SQL命令,实现增删查改的功能。而DAL_CA是重量级的DAL层方法,如果一个类有增删查改的需求,那么就请选择DAL_CA来实现,BS/CS模式都可以使用的一个非常好用的类。

DAL_CA是基于VFP本身的CursorAdpater派生的子类,所以CursorAdpater特性,DAL_CA类也都有。

当实例化一个DAL_ca时,调用Cursorfill()方法,将生成一个临时表,这个表像VFP的临时表一样可以进行操作.

*-- Newobject 函数声明一个类
*-- 参数1 是类名称,参数2 是类所在的PRG文件
*-- 1 DALCA类的实例化和查询所有记录(也可以用?传递参数)
*-- 2 DALCA类一经实例化,即拥有增删改的功能
oDALCA=Newobject("DAL_Employees","dal_employees.prg")
oDALCA.CursorFill(.T.)
Browse
1
2
3
4
5
6
7

1 新增一个空行

oDALCA.Add()
Browse
1
2

2 使用Replace 命令填充数据 (同样可以使用此命令修改数据行) ,也可以绑定到控件中操作.

Replace lastname with '中国' in (oDALCA.alias)
brow
1
2

3 删除当前行数据

oDALCA.delete()
brow
1
2

4 检查数据是否改变,返回值如果为.T. ,则表被修改过.

?oDalCa.detectchanged()
1

5 保存到后台数据库中,返回值为.T.则保存成功,为.F.,可以显示oDALCa.msg属性查看错误原因

if !oDalCa.Save()
  wait windows oDalCa.msg
endif
1
2
3

6 撤消所有操作.

? oDalCa.Undo()
1

7 加载JSON,直接变成DAL_CA附加的临时表,BS模式非常好用

oDALCa.parsejson(JSON语句,数据所属的,0,主键list)
1