VC++ADO编程问题(IDispatch error #3149)?

w1984721 2007-04-19 11:32:05
为什么我运行一个程序时会出现-IDispatch error #3149.
运行另外一个程序却没问题。
两个程序的代码都一样:
AfxOleInit();
_ConnectionPtr m_pConnection;
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\Frame1\\WQJXC\\SYSTEM.mdb;Jet OLEDB:Database Password=123","","",adModeUnknown);
}

catch(_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
return false;
}
在StdAfx.h头文件中我都包含了#import "c:\program files...."
为什么同样的的代码两个程序运行时会一个没问题,一个有错!
...全文
1663 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
vincen_cn 2007-05-11
  • 打赏
  • 举报
回复
是不是下面的没加?open前面加。
m_pConnection->CursorLocation=adUseClient
qvbsslf 2007-05-10
  • 打赏
  • 举报
回复
难道说是端口问题?ACCESS数据源会不会给每个ACCESS数据库分一个端口?
w1984721 2007-05-08
  • 打赏
  • 举报
回复
up
w1984721 2007-04-28
  • 打赏
  • 举报
回复
up
CathySun118 2007-04-19
  • 打赏
  • 举报
回复
//先初始化OLE/COM库环境
::CoInitialize(NULL);
英豪伟业 2007-04-19
  • 打赏
  • 举报
回复
//初始化OLE/COM库环境
::CoInitialize(NULL);

// 初始化—连接数据库
void ADOConn::OnInitADOConn()
{
if(m_pConnection==NULL)
{
try
{
//创建Connection对象
m_pConnection.CreateInstance("ADODB.Connection");
// 设置连接字符串,必须是BSTR型或者_bstr_t类型
//连接Oracle数据库字符串
// _bstr_t strConnect = _T("Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=MyUsername;Pwd=MyPassword;");
// m_pConnection->Open(strConnect,"","",adModeUnknown);
//连接SQL Server数据库的字符串
// _bstr_t strConnect = "Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Password=123;Initial Catalog=xx;Data Source=(local)";
//执行数据连接
m_pConnection->Open((_bstr_t)strConnectSQL,"","",adModeUnknown);
//连接Access数据库的字符串
// _bstr_t strConnect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=xx.mdb";
// m_pConnection->Open(strConnect,"","",adModeUnknown);
}
// 捕捉异常
catch(_com_error e)
{
// 显示错误信息
AfxMessageBox(e.Description());
}
}
}

zaodt 2007-04-19
  • 打赏
  • 举报
回复

先把 Jet OLEDB:Database Password=123 这句话去掉,同时把数据库密码密码去掉,解决问题后再加上密码。
w1984721 2007-04-19
  • 打赏
  • 举报
回复
::CoInitialize(NULL);
还是有错!IDispatch error #3149

先把 Jet OLEDB:Database Password=123 这句话去掉,同时把数据库密码密码去掉
也还是有错!IDispatch error #3149

但在另外一个程序上却没问题
::CoInitialize(NULL);
AfxOleInit()
m_pConnection.CreateInstance(__uuidof(Connection));
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\\ADOConnect\\wq.mdb","","",adModeUnknown);
到底是为什么?

4,018

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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