求助,C++连接SQL Server时出现内存异常!
下边是我调试的代码:
_ConnectionPtr m_pConnection;
CDialog::OnInitDialog();
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("driver={SQL Server};Server=OCS-ARC;DATABASE=Caller;UID=saas;PWD=saa","","",adModeUnknown);///连接数据库
///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
MessageBox("连接成功");
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
}
///////////SQL语句操作
_RecordsetPtr m_pRecordset;
m_pRecordset.CreateInstance("ADODB.Recordset");
_CommandPtr m_pCommand;
m_pCommand.CreateInstance("ADODB.Command");
_variant_t vNULL;
vNULL.vt = VT_ERROR;
vNULL.scode = DISP_E_PARAMNOTFOUND;///定义为无参数
m_pCommand->ActiveConnection = m_pConnection;///非常关键的一句,将建立的连接赋值给它
m_pCommand->CommandText = "SELECT caller_id FROM caller";///命令字串
m_pRecordset = m_pCommand->Execute(&vNULL,&vNULL,adCmdText);///执行命令,取得记录集
/////////////记录集或连接都可以用Close方法来关闭
m_pRecordset->Close();///关闭记录集
m_pConnection->Close();///关闭连接
程序在执行到
m_pRecordset = m_pCommand->Execute(&vNULL,&vNULL,adCmdText);
这一句时出现异常,具体的异常内容为:
0x7c812a6b 处未处理的异常: Microsoft C++ 异常: 内存位置 0x0012f220 处的 _com_error。
本人是C++新手,麻烦帮忙一下了!!!