我由于每次要插入大量数据入库,因此采用ADO的批量插入函数。插入后用SQL*PLUS工具可以看到插入的数据。可是我用_Recordset的数据集对象Open数据表查看,数据插入前和插入后我查看到的数据都一样,前后没有发生变化。请问怎么回事?//m_pConnection对象做数据库连接部分省略
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open("SELECT * FROM student", 
m_pConnection.GetInterfacePtr(),  
adOpenDynamic,
adLockOptimistic,
adCmdText);
_variant_t var;
CString str1,str2;
var = theApp.m_pRecordset->GetCollect("name");  //name是数据表中第一字段
if(var.vt != VT_NULL)
   str1 = (LPCSTR)_bstr_t(var);
var = theApp.m_pRecordset->GetCollect("age");   //age是数据表中第二字段
if(var.vt != VT_NULL)
   str2 = (LPCSTR)_bstr_t(var);
m_list.SetItemText(0,j,str1); //m_list是ListCtrl控件变量
m_list.SetItemText(1,j,str2);
//我通过ListCtrl控件查看数据表中内容,插入前后没有变化,而且一直没变化

解决方案 »

  1.   

    啊,一不小心想出来了。原来因为我的程序有两个地方使用到_Recordset对象,而且是指向同意个表,因此有时候更新就不同步。我现在在每个需要的地方open,完了后再close。这样避免了以上问题。
      

  2.   

    呵呵,同步调用的问题,可以写成一个连接嘛,这样的话不需要另外一个先close()。
      

  3.   

    他的意思应该是你的Connection用同一个吧,两个RecordSet用一个Connection.