首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

VC2005联接sql2005数据库失败

2012-12-16 
VC2005连接sql2005数据库失败本帖最后由 wsfxzxb 于 2012-08-09 15:23:41 编辑一、数据库没有问题,在VB6.0

VC2005连接sql2005数据库失败
本帖最后由 wsfxzxb 于 2012-08-09 15:23:41 编辑 一、数据库没有问题,在VB6.0中连接完好。
sql数据库:    MyData_1    
表:          通讯录


 

二、在VC2005中连接同一个数据库编译通过,无警告无错误。调试状态运行时显示最后一句

 CoUninitialize();   

出错。弹出对话框,Ado.exe中0x4dd1559c处未处理的异常:0xc0000005读取位置0xffffffff时发生访问冲突

注:为了排除是字符集的情况,我先后使用了Unicode字符集、多字符集及未设置三种情况,均是一样的错误。

 



 

源程序代码如下:

 

void CAdoDlg::OnBnClickedBtnQuery()
{
 // TODO: 在此添加控件通知处理程序代码
 CoInitialize(NULL);  

  _ConnectionPtr pConn(__uuidof(Connection)); 

 _RecordsetPtr pRst(__uuidof(Recordset));
 

 pConn->ConnectionString ="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=MyData_1;Data Source=YINGZI-COMPUTER\\SQLEXPRESS";
 pConn->Open("","","",adConnectUnspecified);
 
 pRst=pConn->Execute("select * from 通讯录",NULL,adCmdText);

 while(!pRst->rsEOF)
 {
  ((CListBox*)GetDlgItem(IDC_LIST1))->AddString((_bstr_t)pRst->GetCollect("姓名"));
  pRst->MoveNext();
 }

 pRst->Close();
 pConn->Close();
 pRst->Release

 pConn->Release();

 

 CoUninitialize();   

}


[解决办法]
CoInitialize(NULL);//放在工程初始化函数里
CoUninitialize(); //放在工程退出函数里
如果你一定要放到这个函数里,就这么试试:
void CAdoDlg::OnBnClickedBtnQuery()
{
 // TODO: 在此添加控件通知处理程序代码
 CoInitialize(NULL);   


CoInitialize(NULL);
Sleep(20);//延时20毫秒

[解决办法]
我前几天刚好连接了VS2008与sql2005,在我资源里面总结了,你可以看看
[解决办法]
谢谢楼上二位

热点排行