加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

OLE DB 错误:OLE DB 或 ODBC 错误

(2006-08-18 15:02:00)
标签:

杂谈

分类: 数据库

最近升级sqlserver2000到2005却发现asp不能连接sql2005

搜了很久搞定了

Set conn = Server.CreateObject("ADODB.Connection")
connstr="Provider=SQLNCLI.1;Data Source="&connServerName&";Initial Catalog="&connDatabase&";User ID="&connUserName&";Password="&connPassword&";"
conn.Open connstr

把SQLOLEDB修改为SQLNCI.1就ok了

而且在微软支持页找到OLE DB 错误:OLE DB 或 ODBC 错误 官方解释

错误消息 1

OLE DB 错误:OLE DB 或 ODBC 错误:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。
系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的更多信息,请参阅 SQL Server 联机丛书中的“外围应用配置器”。; 42000.

错误消息 2

OLE DB 错误:OLE DB 或 ODBC 错误

发生这种问题是因为,SQL Server 2005 只提供对一组特定访问接口的进程内访问。SQLNCLI 是 SQL Server 2005 的一个新的本机 OLE DB 访问接口,它具有访问权。但是,SQLNCLI.1 是特定于版本的 SQLNCLI 访问接口,它不在访问接口的列表中。因此,SQLNCLI.1 没有访问权。尽管 SQLNCLI 和 SQLNCLI.1 完全相同(因为 SQLNCLI 指向 SQLNCI.1),但 SQL Server 2005 并不能识别出它们是相同的。SQL Server 2005 会阻止对 SQLNCLI.1 的访问。

要解决此问题,请使用下列方法之一:

在 OLE DB 连接字符串中使用 SQLNCLI 代替 SQLNCLI.1。

在 SQL Server 中,将 SQLNCL.1 显式添加到具有进程内访问权的供应商列表中。

摘自对 SQL Server 2005 自述文件的更改(http://support.microsoft.com/kb/907284/zh-cn?spid=2855)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有