异常:0x00315A32 处有未经处理的异常(在 测试.exe 中): 0xC0000005: 读取位置 0x00000000 时发生访问冲突。
#import "c:\program files\common files\system\ado\msado15.dll" named_guids rename_namespace("ADOCG") rename("EOF", "EndOfFile") rename("BOF","FirstOfFile")
#include <iostream>
#include <string>
using namespace ADOCG;
using namespace std;
int main()
{
_ConnectionPtr pConn=NULL;
CoInitialize(NULL);
HRESULT hr= pConn.CreateInstance(__uuidof(Connection));
if(FAILED(hr))
{
//提示错误
return 0;
}
_bstr_t strConnect="Provider=SQLOLEDB;Server=落叶随风;Database=bj_db_kk;uid=sa;pwd=5201314";
try{
pConn->Open(strConnect,"","",NULL);
}
catch(_com_error &e)
{
//提示错误信息e.Descripton();
}
_CommandPtr cmmd;
HRESULT hrCmd = cmmd.CreateInstance(__uuidof(Command));
if(FAILED(hrCmd))
{
//创建设_ComandPtr对象失败,提示失败
return 0;
}
int a,b;
b=100;
_ParameterPtr param = cmmd->CreateParameter(""/*NetType*/,adVarChar,adParamInput,10,b);
cmmd->Parameters->Append(param);
param = cmmd->CreateParameter("aaa"/*Desp*/,adVarChar,adParamOutput,254);
cmmd->Parameters->Append(param);
//返回参数,返回新建的网络的ID
cmmd->CommandText=_bstr_t("tset");//存储过程的名称
cmmd->ActiveConnection = pConn;//需要使用的ADO连接
_RecordsetPtr rs=NULL;
cmmd->CommandType=adCmdStoredProc;
rs.CreateInstance(__uuidof(Recordset));
rs=cmmd->Execute(NULL,NULL,adCmdStoredProc);
a=(int)cmmd->Parameters->GetItem("aaa")->GetValue();//获取输出参数值
while(!rs->EndOfFile)
{
cout<<(_bstr_t)rs->GetFields()->GetItem("HC")->Value //这里是列名
<<(_bstr_t)rs->GetFields()->GetItem("CYZ")->Value<<endl;//这里是列名
rs->MoveNext();//移到下一行
}
cmmd.Detach(); //断开连接
getchar();
return 0;
}
都不知道哪里错了。。