怎么才能让ADO在 UpDate 时才更新数据源

来源:百度知道 编辑:UC知道 时间:2024/06/07 03:03:34
读取数据到记录集
m_pRecordset->Open(Sqlcmd,_variant_t((IDispatch*)m_Con, TRUE),adOpenStatic , adLockOptimistic,adCmdText);

this->m_pRecordset->PutCollect(field,_variant_t(Value));
就直接把数据源该了,我想在执行UpDate才起作用,
数据源SqlServer 2000 sp3 还有我在执行完PutCollect 后要执行UpDate MoveFirst 等就非法,
我想先把修改的内容写到记录集,然后显示并对远程设置,如果成功才写到数据源,不成功就不存储了, 在从数据源把原始的数据读出来, 其实按ADO文挡说的,PutCollect()是不直接写入数据源的,在调用UpDate()才写入的,在ACCESS数据库中可以实现, 但SQL就不行,用其他的方法备份麻烦点也能实现, 但我很想解决这个问题, 既然ADO帮助文献说是可以的应该一定可以。我把分先给newghost_joe希望你在有时间在看看这个问题。

既然你想实现: 输入->远程设置->写入数据源
你就得保存输入,作为备份,不然你怎么实现??
或者你: 输入->写入数据源->远程设置->二次修改,这样可以不用备份,但是原来的数据就没了....也就是说远程设置必须给出正确的值,总之你自己也知道一调用 PutCollect()就立即写入了,UpDate()只是个通告

如果做备份的话,用 ObjectList 也不难,Recordset 本身就是链表元素,也不用你自己写,直接用就行了....

不直接附值 试着将你要存储的东西放在变量里 等到UPDATE时在将变量的值交给数据库。可能会平白无故多出很多变量,但是应该不会有你这种问题了