我在三层结构下,后台的一个表有一字段不能为空,可delphi居然不报错。(50分)

  • 主题发起人 主题发起人 ouke
  • 开始时间 开始时间
O

ouke

Unregistered / Unconfirmed
GUEST, unregistred user!
存盘当然是存不进去,但在c/s下会报bde错误呀,在三层结构下为什么不会呢
是我设置不对吗
 
字段会不会是IDENTITY
 
可以在APP的ONAPPLYUPDATE事件中处理
 
按理说我不处理,也要报bde的错误呀,要不我在怎么知道我漏处理了
 
有没有default value
 
3.5.8 在服务器端纠错
大多数数据库管理系统(RDBMS)都实现了纠错,以保证数据的完整和一致性。所谓纠
错,实际上就是预先指定一些规则,字段和记录的值必须符合这些规则。
大多数符合SQL-92的RDBMS都支持下列纠错:
l NOT NULL字段必须有值;
l NOT NULL UNIQUE字段必须有值而且不能与其他记录重复;
l CHECK字段的值必须在一个范围内;
l CONSTRAINT在表格级对字段的值进行检查;
l PRIMARY KEY指定一个或几个字段作为关键字段;
l FOREIGN KEY指定一个或几个字段引用其他表格。
当然,不是所有的数据库都支持上述纠错,也有的服务器还支持其他纠错。其实,许多数据库桌面系统也支持纠错,不过,在服务器端纠错的优势是,多个客户程序可以共享服务器端的纠错,而不必在每个客户程序中重复一些代码。应用服务器可以借用远程数据库服务器的纠错规则,对客户程序传递过来的数据进行纠错,这就要用到Constraints属性,只要把这个属性设为True(默认)。如果不想借用远程数据库服务器的纠错规则,应当把Constraints属性设为false;
是不是解决问题了?
 
提交的时候检查 ErrorCount 是否大于 0 就知道提交是否出错。
 
如果要在客户端知道出错,要给onReconcileError事件(记不住具体名,是ClientDataet的最后一个事件)
加上处理,否则,就是有错,也不会通知应用程序。都忽略了。
参见Delphi的例子RecError.pas的用法。
 
好象是GUOJUN所说的那样.
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
867
DelphiTeacher的专栏
D
D
回复
0
查看
836
DelphiTeacher的专栏
D
后退
顶部