ASP用SQL连接数据库时怎么老出现这个问题

来源:百度知道 编辑:UC知道 时间:2024/06/06 20:14:37
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC SQL Server Driver][Shared Memory]SQL Server 不存在或访问被拒绝
/qygl/conn.asp, 第 3 行

浏览器类型:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; CIBA; .NET CLR 2.0.50727)

网页:
POST 41 ??? /qygl/dl.asp

POST Data:
login=admin&pwd=admin&submit=%B5%C7%C2%BC

时间:
2009年5月27日, 20:55:01

我的连接代码是
<%
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open"Driver={SQL Server};Server=(local);UID=admin;PWD=admin;"&_
"database=qygl;"
conn.open connstr
%>
我用的是SQL2005数据库

报这个错误可能有以下几种情况,希望能给你些帮助:

这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录
没有正确的权限.

还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,
这些别的程序一般是Visual InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。

这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用
本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。
还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。
最可能的原因是ConnectString是一个在global.asa中初始化的Session变量,但是global.asa
却没有正常工作。解决办法是,检查赋值时是否正确;还有一个原因就是你在你的ConnectString中加入了多余的空格

例如:

Set conn = Server.CreateObject("ADODB.Connection")

connstr = "Provider=Sqloledb; User ID=" & SqlUsername & "; Password=" & SqlPassword & "; Initial Catalog = " & SqlDatabaseName & "; Data Source=" & SqlLocalName & ";"

conn.Open connstr

改为
Set conn = Server.CreateObject("ADODB.Connection")

connstr="Driver={SQL Server};Server=local;uid="&SqlUsername&&q