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版本的。
各位大侠,谁遇到过这个问题,麻烦说一下。
万分感谢!!!!!
...全文
191 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
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”不在这个目录下,会不会有问题?
回复
相关推荐
发帖
Access
创建于2007-09-28

7519

社区成员

Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
申请成为版主
帖子事件
创建了帖子
2013-06-11 05:05
社区公告
暂无公告