c++ 连接数据库

okboc 2013-06-11 05:05:35
兄弟我遇到个问题,请各位大神看看。
开发机:WIN7
开发语言:VS2010 c++
OFFICE2010
目标机:XP
OFFICE2003

代码如下:
//得到绝对路径
TCHAR szPath[MAX_PATH];
TCHAR szDB[MAX_PATH];
::GetModuleFileName(AfxGetInstanceHandle(), szPath, MAX_PATH);
::PathRemoveFileSpec(szPath);
strcpy_s(szDB,szPath);
strcat_s(szDB,_T("\\WF3D.mdb"));

//创建连接对象实例
m_pConnection.CreateInstance("ADODB.Connection");
//设置连接字符串
CString strConnect="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + CString(szDB)+ ";Persist Security Info=False";//ACCESS
CString strConnect="Provider=SQLOLEDB.1;Data Source=.;Initial Catalog=WF3D;User ID=sa;Password=sa;";//sql server
//使用Open方法连接数据库,经调试,下面这句出错
m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);

如果不用CATCH的情况下得到的错误是
Debug Error! R6010 -abort() has been called
ACCESS和SQL SERVER2000个人版都是出现这个错误

本论坛2011年有人问过类似的问题“c++ 连接access数据库”,但最后说是“第一是provider变了,还有data source的完整路径”
这个PROVIDER难度还能变?版本的问题?我看了目标机ODBC确实是4.0版本的。
各位大侠,谁遇到过这个问题,麻烦说一下。
万分感谢!!!!!
...全文
240 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2013-06-13
  • 打赏
  • 举报
回复
2010 和 2003 office 的驱动版本不一样。
WWWWA 2013-06-13
  • 打赏
  • 举报
回复
估计会有问题
okboc 2013-06-13
  • 打赏
  • 举报
回复
两位大神,能不能说详细点。
okboc 2013-06-11
  • 打赏
  • 举报
回复
初始化:::CoInitialize(NULL); #import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace \ rename("EOF","ADOEOF")rename("BOF","ADOBOF") 都有 突然想起个问题,如果目标机的“msado15.dll”不在这个目录下,会不会有问题?

7,732

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧