(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect 错误
(LPCTSTR)(_bstr_t)m_pRecordset->GetCollect 异常
sql.Format (L"SELECT * FROM [CH_User] WHERE UserName='%s'", strName ); //姓名,密码
vSQL =( _bstr_t)sql;
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
if (m_pRecordset->adoEOF)
m_check = FALSE;
else
{
CString Pwd;
Pwd = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect ("Pwd");
}
编译成功, 单步运行, 在最后pwd那句出现异常, 提示:
***.exe 中的 0x7c812afb处未处理异常 : Microsoft c++ 异常:
内存位置 0x0013e5a8处的 _com_error.
中断指向 msado15.tli文件中的GeCollect函数 ,最后一行return处。
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);
}
请问什么原因?
编译环境是VS2008 MFC, 这几句是从VC++移过来的。
连接数据库, UPDATA修改数据库都是没问题。
谢啦~
------解决方案--------------------
_variant_t Recordset15::GetCollect ( const _variant_t & Index )
参数需要传递index,"Pwd"在你表的第几列就传几
比如第3列就传2: GetCollect(_variant_t((long)2))
------解决方案--------------------
sql.Format (L"SELECT * FROM [CH_User] WHERE UserName='%s'", strName ); //姓名,密码
vSQL =( _bstr_t)sql;
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet(vSQL);
if (m_pRecordset->adoEOF)
m_check = FALSE;
else
{
CString Pwd;
Pwd = (LPCTSTR)(_bstr_t)m_pRecordset->GetCollect ("Pwd");
}
编译成功, 单步运行, 在最后pwd那句出现异常, 提示:
***.exe 中的 0x7c812afb处未处理异常 : Microsoft c++ 异常:
内存位置 0x0013e5a8处的 _com_error.
中断指向 msado15.tli文件中的GeCollect函数 ,最后一行return处。
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);
}
请问什么原因?
编译环境是VS2008 MFC, 这几句是从VC++移过来的。
连接数据库, UPDATA修改数据库都是没问题。
谢啦~
------解决方案--------------------
_variant_t Recordset15::GetCollect ( const _variant_t & Index )
参数需要传递index,"Pwd"在你表的第几列就传几
比如第3列就传2: GetCollect(_variant_t((long)2))
------解决方案--------------------