批量更新状态下,如何在插入/修改数据时就进行合法性检查(200分)

  • 主题发起人 主题发起人 precision
  • 开始时间 开始时间
P

precision

Unregistered / Unconfirmed
GUEST, unregistred user!
[red][/red]我写了这样一个程序:
Access DB 字段1 H Char(8) 主键 无重复
TADOTable1.Connection ---> Access DB
.LockType := ltBatchOptimistic
.CursorLocation := clUserClient

DataSource1.DataSet := TADOTable1

DBGrid1.DataSource := DataSource1

Button1.OnClick
begin
ADOTable1.InsertRecord([Edit1.Text]);
end;

Button2.OnClick
begin
ADOTable1.UpdateBatch;
end;
当Edit1.Text := 'Edit1'时,我点了几下Button1,这时候从DBGrid1中可以看到几个Edit1
这明显是应该出错的,但是程序没有报任何错,只是在执行UpdateBatch时才报错.
怎样才能在批量更新状态下,插入/修改数据时就进行合法性检查,而不是在更新的时候检查
 
在对edit1进行录入时,就可加上输入内容的合法性检查。
 
我也碰到这个问题,现在都没有解决.而且,本来新增的两条记录,如果主键重复,updatebatch
时用try on except捕获后,再修改字段,竟然会无法定位行集.
ado在批处理时以字段的原始值及主键的值查找库中的原始记录,再更新过去.但批处理时
数据都在缓存中,多次修改后,竟然也无法定位行集,真烦.
 
Button1.OnClick;
在这里可以做判断
遍历数据库,看是否有重数据。//缓存中的数据也能查得到
begin
ADOTable1.InsertRecord([Edit1.Text]);

end;
 
在插入数据前,查询数据库,看看该记录是否合法!
如楼上说得!
 
后退
顶部