假如现在有两个表: A(A_ID,A_Name) 其中A_ID是关键字段; B(B_ID,B_XH,B_Name)其中B_ID,B_XH是关键字,并且B_ID是A的外键。
问题是:
ADOQuery1的SQL语句是: select A_ID,A_Name from A where 1<>1 其中 ADOQuery1.Active := true;
对应的TDataSource 为DataSource1
ADOQuery1的SQL语句是:select * from B where B_ID=:A_ID 其中 ADOQuery2.Active := true;
ADOQuery2.DataSource := DataSource1;对应的TDataSource 为DataSource2;ADOQuery2的LockType属性为ltBatchOptimistic(批量提交),
现在用一个TDBGrid(DBGrid1)直接对表B直接边界,DBGrid1的DataSource为DataSource2,当增加一条记录提交后就变为空了(既增加的记录没有了)。(同样的方法如果用BDE就没有这个问题)
问题是:
ADOQuery1的SQL语句是: select A_ID,A_Name from A where 1<>1 其中 ADOQuery1.Active := true;
对应的TDataSource 为DataSource1
ADOQuery1的SQL语句是:select * from B where B_ID=:A_ID 其中 ADOQuery2.Active := true;
ADOQuery2.DataSource := DataSource1;对应的TDataSource 为DataSource2;ADOQuery2的LockType属性为ltBatchOptimistic(批量提交),
现在用一个TDBGrid(DBGrid1)直接对表B直接边界,DBGrid1的DataSource为DataSource2,当增加一条记录提交后就变为空了(既增加的记录没有了)。(同样的方法如果用BDE就没有这个问题)
加一条语句:DataSource2.dataset.active:=true;
这条我肯定会加的,不然怎么增加。老大