OLEDB连接SQLSERVER出错 使用ODBC却可以

时间:2022-01-02 04:31:31
在论坛里找了半天没有找到相关答案,故直接发帖求助

问题描述:
使用VB连接SQLSERVER数据库,数据库连接字符书写有两种方式,在下用ODBC的方式却可以正常连接,但是哟给OLEDB的方式却总提示:驱动程序管理器 未发现数据源名称并且未指定默认驱动程序 请问大家是什么问题

程序相关:
WIN7 SQLSERVER2005 VB6(SP6)

程序代码:

'连接方式一 ODBC 可以正常使用
ConnectStr = "Driver={sql server};server=" & SerName & ";Database=" & DBname & ";UId=" & Uid & ";PWD=" & Pwd

'连接方式二 OLEDB方式 提示错误
ConString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=" & DBname & ";Data Source=" & SerName & ";User ID=" & Uid & ";Password=" & Pwd & ""


另外OLEDB的连接方式中有诸多不明白 
1. 其中Provider=SQLOLEDB.1 网上也有写成Provider=SQLOLEDB 后面的.1表示版本呢还是其他
2. Integrated Security=SSPI 这个是什么意思
3. Persist Security Info=False 这个是什么意思

5 个解决方案

#1


问题重新描述 刚犯了个低级错误 其中连接的变量名写错了 一个是ConnectStr 一个是ConString 所以导致错误提示是 “驱动程序管理器 未发现数据源名称并且未指定默认驱动程序” 

把ConString 修改为 ConnectStr 运行时的错误提示是
"DBNMPNTW拒绝访问"

#2


不要用信认连接,改为使用用户名密码连接试试:
ConString= "driver=SQL Server;server=实例名;uid=SA;pwd=SA的密码;database=数据库名"

#3


原谅我的执着 其实用driver的方式连接是没有问题的 但项目中同事写法是用Provider的方法 他的环境是2003的系统

其实说白了 我的意图并不是只要实现连接数据库 如此其实我用driver的方法就行了 而不必关注另一个连接方法 但作为技术人员我还是想了解这两种方法的连接区别到底在哪里 为何在我本地我用driver的方法可行 但Provider的方法却不可用

#4


希望了解的朋友不惜赐教

#5


新建一个文件,改名为a.udl,双击此文件,会提示连接数据库,返回第一个页面,选择好SQL Server的连接,再回第二个页面,输入服务器、用户名、密码、数据库,再点测试连接,如果成功,保存,关闭。
然后,用记事本看a.udl文件的内容,基本上就是连接字符串了。

#1


问题重新描述 刚犯了个低级错误 其中连接的变量名写错了 一个是ConnectStr 一个是ConString 所以导致错误提示是 “驱动程序管理器 未发现数据源名称并且未指定默认驱动程序” 

把ConString 修改为 ConnectStr 运行时的错误提示是
"DBNMPNTW拒绝访问"

#2


不要用信认连接,改为使用用户名密码连接试试:
ConString= "driver=SQL Server;server=实例名;uid=SA;pwd=SA的密码;database=数据库名"

#3


原谅我的执着 其实用driver的方式连接是没有问题的 但项目中同事写法是用Provider的方法 他的环境是2003的系统

其实说白了 我的意图并不是只要实现连接数据库 如此其实我用driver的方法就行了 而不必关注另一个连接方法 但作为技术人员我还是想了解这两种方法的连接区别到底在哪里 为何在我本地我用driver的方法可行 但Provider的方法却不可用

#4


希望了解的朋友不惜赐教

#5


新建一个文件,改名为a.udl,双击此文件,会提示连接数据库,返回第一个页面,选择好SQL Server的连接,再回第二个页面,输入服务器、用户名、密码、数据库,再点测试连接,如果成功,保存,关闭。
然后,用记事本看a.udl文件的内容,基本上就是连接字符串了。