您的位置:首页 > 数据库

孙鑫VC深入详解教程中ADO访问数据库中出现runtime error的问题解决

2011-12-06 14:38 393 查看
在学习过程中,遇到了如题的问题,一筹莫展中……不断地度娘,度娘~终于从csdn一贴子中获得启发!现贴出来,希望能帮到后来者:)

CoInitialize(NULL);
_ConnectionPtr pConn(__uuidof(Connection));
_RecordsetPtr pRst(__uuidof(Recordset));
_CommandPtr pCmd(__uuidof(Command));

pConn->ConnectionString="Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=PowerTransformer2.0;Data Source=PC\\SQLEXPRESS";
pConn->Open("","","",-1);

pRst=pConn->Execute("select * from ps_pt_device",NULL,adCmdText);
//pRst->Open("select * from authors",_variant_t((IDispatch*)pConn),
//	adOpenDynamic,adLockOptimistic,adCmdText);
// 	pCmd->put_ActiveConnection(_variant_t((IDispatch*)pConn));
// 	pCmd->CommandText="select * from authors";
// 	pRst=pCmd->Execute(NULL,NULL,adCmdText);
while(!pRst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(
(_bstr_t)pRst->GetCollect("dname"));
pRst->MoveNext();
}

pRst->Close();
pConn->Close();
pCmd.Release();
pRst.Release();
pConn.Release();
CoUninitialize();


问题出在连接字符串上,细心的同学发现我这里的Datasource是PC\\SQLEXPRESS,写到这里基本上都明白了吧,第一个slash是转义字符,两个slash在C语言里表示一个slash的意思。因此如果连接字符串里存在slash,一定要注意不要写成一个,否则就会出现runtime error的错误!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐