如何先将多条多字段临时纪录添加到类似DBGrid的控件中。保存后再统一添加至数据库(保存之前可以随意修改纪录)。
数据表是典型的主从表,一对多的关系,
保存时
主表内添加一条纪录,获取其主键ID(自增int)以后,将多条录入的数据(也就是类似DBGrid里面的多条数据)及关联主表的主键ID添加到从表中,
在保存之前,可以随便修改已经录入的临时纪录。
初学者,希望能给出完整详细的解决方案。
[解决办法]
将从表以Cached模式打开。
然后新增、删除、修改数据都是在内存中进行的。
等确定保存数量时,再用ApplyUpdates来提交数据。
[解决办法]
楼上说的是,不过你主表也可以先不保存,等要一起保存的时候先保存主表,获取主表ID赋给明细表一起保存.
[解决办法]
从表的ado控件,假设是adoquery1
adoquery1.LockType := ltBatchOptimistic;
其它增加,修改,删除操作如常
最后确认保存
adoquery1.UpdateBatch(arAll);
取消
adoquery1.CancelUpdates;
[解决办法]
1、先将TADODataSet.LockType := ltBatchOptimistic;
2、进行常规的增、删、改操作;
3、提交数据集:TADODataSet.UpdateBatch(arAll);
如果要取消所有修改的话可以用:TADODataSet.CancelBatch(arAll)