# 快速开发编程模型,打通数据库的错误反馈

# 数据完整性由数据库来控制

# 1、字段完整性

表达式:工号<>'' and 姓名<>'' check名: {姓名和工号不可空白} ​

# 2、唯一性限制

设置唯一索引,索引名为{订单号不能为空} ​

# 3、表间的校验或状态更新

在表的触发器中写过程,如不合要求,则 rasieError(..., '{客户欠款数超过限额啦}',..) ​

# 4、引用完整性

产品资料的信息在入库单中存在,不让用户删除. 在关系图中,只需拉一根线(产品资料.产品编号->入库单明细.产品编号)将关系名改为,{该物料已经被使用,无法删除}一根线解决问题,一句代码也不用写。 ​

包括字段/记录, 表间(RF), 完全利用mssql完善的功能、极好的性能、方便集中的操作。 ​

# 框架取回后端的错误

# MSSQLHelper

假设产品资料的信息在入库单中存在,不让用户删除.

oDBSQLHelper=newobject("MSSQLHelper","MSSQLHelper.prg")
if (oDBSQLHelper.exeCuteSQL("delete from 产品资料 where 产品编号 ='1'"))<0
  ?"删除失败",oDBSQLHelper.errmsg
  return 
endif 
?"删除成功"
1
2
3
4
5
6

# DAL_CA类

假设订单号重复了

oCA=newobject("dal_订单","dal_订单.prg")
*--- 省略一些代码
if !oca.save()
  ?"保存失败",oca.msg
  return 
endif
?"保存成功"
1
2
3
4
5
6
7

因为MSSQL数据库有一大堆不需要的提示,我们只需要将其中{错误信息}取出来显示就好。 ​