为什么我写了m_pRecordset->AddNew()后总提示类型不匹配,即使删除后也照样提示?
代码如下:
m_pRecordset.CreateInstance( __uuidof( Recordset ));
try{
m_pRecordset->Open("select * from addrbook",
theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic, adCmdText);//_variant_t((IDispatch *)theApp.m_pConnection,true) //m_pRecordset->AddNew();添加该行后总提示“类型不匹配” m_pRecordset->MoveFirst();
while(m_pRecordset->adoEOF==VARIANT_FALSE){
CString sName=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("name"))->Value);
CString sTel=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("tel"))->Value);
int nItem;
nItem=m_ListCtrl.InsertItem(0,sName);
m_ListCtrl.SetItemText(nItem,1,sTel);
m_pRecordset->MoveNext();
}
}
catch(_com_error e){
AfxMessageBox(e.ErrorMessage());
}
代码如下:
m_pRecordset.CreateInstance( __uuidof( Recordset ));
try{
m_pRecordset->Open("select * from addrbook",
theApp.m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic, adCmdText);//_variant_t((IDispatch *)theApp.m_pConnection,true) //m_pRecordset->AddNew();添加该行后总提示“类型不匹配” m_pRecordset->MoveFirst();
while(m_pRecordset->adoEOF==VARIANT_FALSE){
CString sName=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("name"))->Value);
CString sTel=(char*)(_bstr_t)(m_pRecordset->Fields->GetItem(_variant_t("tel"))->Value);
int nItem;
nItem=m_ListCtrl.InsertItem(0,sName);
m_ListCtrl.SetItemText(nItem,1,sTel);
m_pRecordset->MoveNext();
}
}
catch(_com_error e){
AfxMessageBox(e.ErrorMessage());
}
解决方案 »
- 如何实现子窗口退出,父窗口也退出?
- SOCKET模型中的重叠I/O的一些问题
- 关闭socket的问题
- 将解码后的纯位图数据在内存中生成位图,但不保存bmp文件!急!
- 想知道如何利用 IWebBrowber , Mshtml 来实现 UIless browser。
- matlab和vc混合编程的问题。谢谢大家了!
- 客户端程序如何分别通过电脑上两张同网段网卡分别连到不同的服务器?
- 多次包含头文件造成的错误!
- 我用的是MFC,我的TREE CONTROL控件里没有RBUTTONUP消息,我应该怎么添加上????
- Win7里如何编程实现麦克风侦听
- 如何动态修改CComboBox的样式?(在线等待。。。)
- 感觉难受,散分
然后调用Update完成添加操作....而不是调用MoveFirst....如果添加操作完成之后,要获得新的纪录,就要Requery
然后再MoveFirst... MoveNext.....