关于ADO.Connection 的错误 -- Provider can not be found. It may not be properly installed.

写了一段非常简单的 VBScript 脚本, 就是读一个文件, 然后把相关内容存储到远程SQL Server 2005数据库中.


Set aConn = CreateObject("ADODB.Connection")
aConn.Open "Provider=SQLNCLI;Server=xx.xx.xx.xx;Database=dbname;UID=sa;PWD=thepwd"

... ...

strsql = "insert into tbl values(... ...)"

aConn.execute strsql

 

在本人的开发环境下, 运行正常. (需要说明一下, 在开发环境下, 安装了一个SQL Server 2005 Express Edition.)

然后将脚本转移到测试环境下. 报错.

 

Error:    Provider cannot be found. It may not be properly installed.

Code:   800A0E7A

Source: ADO.Connection

 

说明一下,在测试环境下, 没有安装任何的数据库.

通过分析这个错误提示,可以看出来问题是出在了Provider上面, 而且测试环境下面的MDAC也是安装的最新的,不存在版本的问题.在网上找了些资料, 据说 SQL Server 2005 的数据库连接字符串中的Provider 要使用SQLNCLI,而SQL Server 2000下面使用SQLOLEDB,可现在使用的就是SQLNCLI啊?

 

仔细琢磨一下, 在开发环境下,由于已经安装了SQL Server 2005 Express Edition, 而测试环境下, 并没有安装任何版本的SQL Server. 换言之, 由于安装了 Express Edition, 而同时安装了 SQLNCLI 驱动器, 而MDAC 自带的并没有 SQLNCLI 驱动器, 只有SQLOLEDB 驱动器, 所以导致测试环境下 提示 Provider can not be found....

 

试验一下

aConn.Open "Provider=SQLNCLI;Server=xx.xx.xx.xx;Database=dbname;UID=sa;PWD=thepwd" 改为

aConn.Open "Provider=SQLOLEDB;Server=xx.xx.xx.xx;Database=dbname;UID=sa;PWD=thepwd"

 

测试成功! 看来我的猜测是对的?也只能这样给自己解释了. 没准我的猜测是错误的,只是碰巧问题解决了而已, 还望有高手给解释一下.

 

注:

Microsoft SQL Server 2000 下的连接字符串通常为:
Provider=SQLOLEDB;Data Source=server;Initial Catalog=database;User Id=user;Password=password;

或者
Provider=SQLOLEDB;Server=server;Database=database;Uid=user;Pwd=password;

 

Microsoft SQL Server 2005 下的连接字符串通常为:
Provider=SQLNCLI;Data Source=server;Initial Catalog=database;User Id=user;Password=password;

或者
Provider=SQLNCLI;Server=server;Database=database;Uid=user;Pwd=password;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值