目前用VC做ADO的时候,发现一个问题,即打开的结果集,在提交完一个事务后,会自动被关闭掉。很麻烦的说。经查MSDN,发现MSDN里说,必须把recordset的动态属性"Preserve on Commit"的Value设置为True,这样可以阻止数据集在事务提交后被CLOSE,进入所谓 zombie 状态。 
但是我没有搞成功,代码如下: 
if (m_rptr->Open(Source, _variant_t((IDispatch *)cpstr, true), GNMAdo::adOpenStatic, GNMAdo::adLockOptimistic, GNMAdo::adCmdText) == S_OK) 

GNMAdo::PropertyPtr p = m_rptr->Properties->GetItem(COleVariant("Preserve on Commit")); 
p->PutValue("True"); 
m_active = true; 
return S_OK; 

结果提示,说是不能在记录集打开的情况下进行PutValue操作。我又试着把PutValue放到打开前,结果又提示说找不到该属性。:( 
我在网上查了阵,没有查到相关帖子,看看这里的老大们会不会解决。