永发信息网

ADO 连接数据库正常 但是操作就提示 无效指针。。怎么回事呀。

答案:2  悬赏:10  手机版
解决时间 2021-01-04 03:57
  • 提问者网友:戎马万世
  • 2021-01-03 11:25
ADO 连接数据库正常

但是操作就提示 无效指针。。
怎么回事呀。

// 添加数据
BOOL CPublic::AddData(LPCTSTR ConnStr)
{
try
{
_variant_t RecordsAffected;
_bstr_t strConnect = _bstr_t(ConnStr);
m_pRecordset = m_pConnection->Execute(strConnect, &RecordsAffected, adCmdText);
}
// 捕捉异常
catch (_com_error e)
{
CString strError;
strError.Format(_T("添加数据发生异常! \r \n错误信息:%s"), e.ErrorMessage());
AfxMessageBox(strError);
return FALSE;
}
return TRUE;
}
最佳答案
  • 五星知识达人网友:一把行者刀
  • 2021-01-03 12:46
_variant_t RecordsAffected;
不对吧,缺一个 VariantInit(&RecordsAffected);,试试吧
你看下面的这个函数,也是ADO访问数据库的
inline _variant_t Recordset15::GetCollect ( const _variant_t & Index ) {
VARIANT _result;
VariantInit(&_result);
HRESULT _hr = get_Collect(Index, &_result);
if (FAILED(_hr)) _com_issue_errorex(_hr, this, __uuidof(this));
return _variant_t(_result, false);
}
全部回答
  • 1楼网友:長槍戰八方
  • 2021-01-03 13:19
凡是涉及到gui处理的(画面变化/画面控件操作等),必须要在主线程里做,这是微软规定的。 所以在后台线程中,不能afxmessagebox的。 试试子线程启动后先调用一下 ::coinitialize(null); //初始化com库 线程退出时加::couninitialize();
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯