ADO求助,已找到函数原型,SQL server数据库连接不上,异常为:DB_SEC_E_AUTH_FAILED ,IDispatch error #3149

时间:2021-04-17 13:10:08
ADO连接数据库函数的原型:  
HRESULT  Open(_bstr_t  ConnectonString,  _bstr_t  Uid,  _bstr_t  Password,  long  Options);  
 
我的两种调用如下:  
hrc  =  m_pConnection->Open("driver={SQL server};server=192.178.1.14;database=nescafe_cap;uid=ks;pwd=k","","",adModeUnknown);  
 
hrc  =  m_pConnection->Open("driver={SQL server};server=192.178.1.14;database=nescafe_cap","uid=ks","pwd=k",adModeUnknown); 

我捕捉到的异常为:DB_SEC_E_AUTH_FAILED ,IDispatch error #3149
 
请问这几个参数具体是什么意思?Uid是用户的等入名(帐号)吗?在建立数据库连接时是否要对数据库做相应的设置?  
 
哪位大侠给详细讲解一下,最好附实例
(我写的是SDK程序)

11 个解决方案

#1


mark

#2


HRESULT  Open(_bstr_t  ConnectonString,  _bstr_t  Uid,  _bstr_t  Password,  long  Options);  
我看很多大侠的帖子,Uid = sa,我也查过数据库的属性,发现数据库的所有者为sa,这好像是默认的,如果是这样的话,那Password又指什么呢??

给点提示嘛哈

#3


DB_SEC_E_AUTH_FAILED ,IDispatch error #3149与密码无关,你调用了连接对象的CreateInstance方法了吗?

#4


如樓上所說 CreateInstance() 調用了沒?

#5


m_pConnection->Open("Provider=sqloledb;Data Source=myServerName;Initial Catalog=myDatabaseName;User Id=myUsername;Password=myPassword","","",adModeUnknown)

#6


hrc  =  m_pConnection->Open("driver={SQL server};server=192.178.1.14;database=nescafe_cap;uid=ks;pwd=k","ks","k",adModeUnknown);

#7


你单步调试一下,看看是哪一条语句出错了。。

#8


访问数据库的用户名和口令错误,SQL Server数据库安装后有一个默认用户sa,它的口令由安装时设定,也可能为空。你要用用户ks和口令k访问数据库,你要先用SQL Server的企业管理器进去后建立好相应的用户名和口令。

#9


谢谢各位大侠, 尤其是yang79tao兄(DB_SEC_E_AUTH_FAILED ,IDispatch error #3149在帮助文档里根本查不到,以后也要注意).问题已经解决,是数据库的登入帐户和密码的问题,原先以为是系统的登入名和密码,原来在SQL Server里可以设置数据库的访问权限.

但小弟有又一难题,我如何取得其中的字段呢?

给段代码嘛哈,最好不全是MFC的,最好是SDK或console代码,可以用CString类(因为这样的代码重用性比较高嘛哈^_^)

#10


zcy_beijing(行云流水)兄说的对,就是这个问题

#11


搞定!!,原来只是个数据库数据类型转换的问题,呵呵,如果谁有相关的资料,给我发消息,共享一下嘛哈

#1


mark

#2


HRESULT  Open(_bstr_t  ConnectonString,  _bstr_t  Uid,  _bstr_t  Password,  long  Options);  
我看很多大侠的帖子,Uid = sa,我也查过数据库的属性,发现数据库的所有者为sa,这好像是默认的,如果是这样的话,那Password又指什么呢??

给点提示嘛哈

#3


DB_SEC_E_AUTH_FAILED ,IDispatch error #3149与密码无关,你调用了连接对象的CreateInstance方法了吗?

#4


如樓上所說 CreateInstance() 調用了沒?

#5


m_pConnection->Open("Provider=sqloledb;Data Source=myServerName;Initial Catalog=myDatabaseName;User Id=myUsername;Password=myPassword","","",adModeUnknown)

#6


hrc  =  m_pConnection->Open("driver={SQL server};server=192.178.1.14;database=nescafe_cap;uid=ks;pwd=k","ks","k",adModeUnknown);

#7


你单步调试一下,看看是哪一条语句出错了。。

#8


访问数据库的用户名和口令错误,SQL Server数据库安装后有一个默认用户sa,它的口令由安装时设定,也可能为空。你要用用户ks和口令k访问数据库,你要先用SQL Server的企业管理器进去后建立好相应的用户名和口令。

#9


谢谢各位大侠, 尤其是yang79tao兄(DB_SEC_E_AUTH_FAILED ,IDispatch error #3149在帮助文档里根本查不到,以后也要注意).问题已经解决,是数据库的登入帐户和密码的问题,原先以为是系统的登入名和密码,原来在SQL Server里可以设置数据库的访问权限.

但小弟有又一难题,我如何取得其中的字段呢?

给段代码嘛哈,最好不全是MFC的,最好是SDK或console代码,可以用CString类(因为这样的代码重用性比较高嘛哈^_^)

#10


zcy_beijing(行云流水)兄说的对,就是这个问题

#11


搞定!!,原来只是个数据库数据类型转换的问题,呵呵,如果谁有相关的资料,给我发消息,共享一下嘛哈