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实现多表连接单表更新的问题?多谢了。
有两个表,数据分别是:
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实现多表连接单表更新的问题?多谢了。