ADO 中多表更新的問題?(50分)

  • 主题发起人 主题发起人 YJT-117
  • 开始时间 开始时间
Y

YJT-117

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库是sql server7,前端用ADO控件连接。
有两个表,数据分别是:
hp(货品表)
id name
1 A
2 B
3 C
4 D

cgd(采购单,idhp与hp的id关联)
id idhp sl
1 1 2
2 2 3
3 3 4
4 4 5

在Tadoquery1的sql写:
select a.id,b.name,a.sl from cgd a,hp b where a.idhp=b.id

Tadoquery1.LockType:=itBatchOptimistic
Tadoquery1的Afterdelete写:
adoquery1.UpdateBatch;

在Button1的Onclick写:
adoquery1.delete;

那么Tdbgrid显示:
id name sl
1 A 2
2 B 3
3 C 4
4 D 5

假如光标指向表格Tdbgrid的id=2时,一按button1,删除掉id=2的记录。当我打开数据库时,我发现hp的name=B也同时被删除掉,这个问题我已经解决,可以在adoquery1的afteropen事件里就行了:
ADOQuery1.Recordset.Properties.Item['Unique Table'].Value:='cgd';

但是,当adoquery1.insert时,添加一些数据,然后adoquery1.post时,同时也把hp添加了数据,我的问题是,如何避免这个问题?我以前用BDE连接sql server7是没有这个问题的,我知道是由于加这个组件:Tupdatesql,但ado是不能添加这个组件的,那么如何用ADO实现多表连接单表更新的问题?多谢了。

 
我也是碰到这个问题,不知道您是如何解决的?
 

Similar threads

D
回复
0
查看
825
DelphiTeacher的专栏
D
D
回复
0
查看
831
DelphiTeacher的专栏
D
后退
顶部