如果你连续执行批量的记录操作,你不能使用AddNew函数。它将导致失败中断。尽管CRecordset类没有提供一个方法来做批量的记录操作,但是你可以利用ODBC API SQLSetPos函数写一个你自己的函数。AddNew提供一个新的、空的记录使用记录集中的字段。然后你可以调用AddNew,设置你需要的值。(在这里你没有必要使用Edit函数;Edit函数仅仅用来修改已有的记录。)随后调用Update函数来更新保存数据到数据源中[1]。
如果你在Update之前滚动到一个新的记录,那么这个新的记录将会丢失,并且没有原因提示。如果数据源支持动态交易,你可以使你的AddNew调用交易的一部分。更多关于交易的信息查看CDatabse类。注意,要在你调用AddNew之前调用CDatebase::BeginTrans函数。关键:对于动态集,新记录将被添加到记录集的末尾,快照集是不能添加新纪录的---除非你调用Requery来返回记录集。
[1]
[1] Insert和Rs.Addnew的比较 · 做网页网[引用日期2014-03-15]
Copyright 2023 fuwu029.com赣ICP备2022008914号-4