一个用Tdbedit向数据表中添加记录的问题(80分)

  • 主题发起人 主题发起人 业余爱好
  • 开始时间 开始时间

业余爱好

Unregistered / Unconfirmed
GUEST, unregistred user!
问题是这样:
一个表,一个关键字不能为空;
我用dbgrid 和dbedit同时在一个窗体中显示表中的内容,记录值dbgrid和dbedit是对应的

但是当我点击添加按钮后(他里面的代码是append,还有一个确定按钮,代码是post,确定按钮有检错代码)

向dbedit中输入数据,如果我向一个允许为空的字段中先写入数据,关键字段没写,而这是我又在dbgrid
上点击别的记录时,出错提示不能写入一个null值到这个字段,也就是说在我还没有post呢就已经写入数据了
怎么处理这个现象?
 
除非你使用缓存处理机制,否则你tdataset改变,肯定会post的
 
beforpost :if then exit;
 
没错,要不把表该为not null:)或者用edit ,然后写语句对表进行修改
 
要是用缓存的话虽然没有添加到数据库中但是在dbgrid中还是显示添加了这个记录
要是要是用edit的话
我得表中有100多个字段,你可以现在想想录入和修改要有多大的工作量
 
这样把,在onbeforepost 写上 Abort;
修改你的post按钮的代码
var l_event : TDataSetNotifyEvent;
l_event := query.onbeforepost;
query.onbeforepost := nil;
query.post;
query.onbeforepost := l_event
 
后退
顶部