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

在学习过程中,遇到了如题的问题,一筹莫展中……不断地度娘,度娘~终于从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的错误!

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值