asp连接数据库的问题Provider=SQLOLEDB与Driver={sql server};

时间:2021-05-12 11:53:50
<% 
set conn = server.createobject("adodb.connection") 
Conn.Open "Provider=SQLOLEDB;User ID=sa;Password='';Initial Catalog=xiangmu;Data Source=.;" 
%> 

总是出现如下错误 
Microsoft OLE DB Provider for SQL Server (0x80004005) 
[DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。

但改成
<% 
set conn = server.createobject("adodb.connection") 
Conn.Open "Driver={sql server};User ID=sa;Password='';Initial Catalog=xiangmu;Data Source=.;" 
%> 

就好用,为什么?(有的机器使用Provider=SQLOLEDB;也能正常使用)

9 个解决方案

#1


<%@LANGUAGE="VBSCRIPT"%>   
  <%   
  option   explicit   
  dim   startime,endtime,conn,strCon,db   
  startime=timer()   
    
  Dim   strSQLServerName   
  Dim   strSQLDBUserName   
  Dim   strSQLDBPassword   
  Dim   strSQLDBName   
    
  '请填写数据库具体参数   
  '-----------------------------------------------------------------------------------------------   
  strSQLServerName   =   "211.154.211.125"             '服务器名称或地址   
  strSQLDBUserName   =   "Name"                           '数据库帐号   
  strSQLDBPassword   =   "PWS"                               '数据库密码   
  strSQLDBName   =   "数据库名"                           '数据库名称   
  '-----------------------------------------------------------------------------------------------   
    
  'SQL   Server   OLE   Driver   
  Set   conn   =   Server.CreateObject("ADODB.Connection")   
  strCon   =   "Provider=SQLOLEDB.1;Persist   Security   Info=False;Server="   &   strSQLServerName   &   ";User   ID="   &   strSQLDBUserName   &   ";Password="   &   strSQLDBPassword   &   ";Database="   &   strSQLDBName   &   ";"   
    
  conn.Open   strCon   
    
    
  function   CloseDatabase   
  Conn.close   
  Set   conn   =   Nothing   
  End   Function   
  %>   

#2


服务器 类型

#3


我现在不清楚的是为什么我的机器使用Provider=SQLOLEDB的方式不行,而使用Driver={sql server}就没问题?

#4



不支持SQLOLEDB驱动?

#5


就看你的机子上是否按照该类型的驱动了,不过一般连接SQL SERVER2000都用Driver={sql server}的,就像连接ORACLE都用ORALCE提供的驱动一样,数据库厂商提供的驱动效率总是会高些,OLE DB是一种通用的驱动,效率比较差,建议你就用第二种吧

#6


5楼的说法并不严谨。
第一种方式是OLEDB方式,第二种是ODBC方式。相对来说还是OLE DB方式效率更高一些,而且连接ORACLE也不是非要ODBC不可。

楼主的问题可能出在安装SQL SERVER过程中有小问题。你可以参考这里尝试一下:
http://www.136z.com/Webbiz/CmsDoc/35025.html

#7


或者尝试更改连接字符串:
"Provider=SQLOLEDB;data source=机器名;initial catalog=数据库名;userid=sa;password=密码"

#8


另外其他可能的原因是你的SQL SERVER版本问题。
如果版本低,要打补丁的

再有就是看看1433或其他你指定的连库端口是否开启,可以用netstat查看一下

#9


引用 6 楼 toury 的回复:
5楼的说法并不严谨。 
第一种方式是OLEDB方式,第二种是ODBC方式。相对来说还是OLE DB方式效率更高一些,而且连接ORACLE也不是非要ODBC不可。 

楼主的问题可能出在安装SQL SERVER过程中有小问题。你可以参考这里尝试一下: 
http://www.136z.com/Webbiz/CmsDoc/35025.html 

是的。。

#1


<%@LANGUAGE="VBSCRIPT"%>   
  <%   
  option   explicit   
  dim   startime,endtime,conn,strCon,db   
  startime=timer()   
    
  Dim   strSQLServerName   
  Dim   strSQLDBUserName   
  Dim   strSQLDBPassword   
  Dim   strSQLDBName   
    
  '请填写数据库具体参数   
  '-----------------------------------------------------------------------------------------------   
  strSQLServerName   =   "211.154.211.125"             '服务器名称或地址   
  strSQLDBUserName   =   "Name"                           '数据库帐号   
  strSQLDBPassword   =   "PWS"                               '数据库密码   
  strSQLDBName   =   "数据库名"                           '数据库名称   
  '-----------------------------------------------------------------------------------------------   
    
  'SQL   Server   OLE   Driver   
  Set   conn   =   Server.CreateObject("ADODB.Connection")   
  strCon   =   "Provider=SQLOLEDB.1;Persist   Security   Info=False;Server="   &   strSQLServerName   &   ";User   ID="   &   strSQLDBUserName   &   ";Password="   &   strSQLDBPassword   &   ";Database="   &   strSQLDBName   &   ";"   
    
  conn.Open   strCon   
    
    
  function   CloseDatabase   
  Conn.close   
  Set   conn   =   Nothing   
  End   Function   
  %>   

#2


服务器 类型

#3


我现在不清楚的是为什么我的机器使用Provider=SQLOLEDB的方式不行,而使用Driver={sql server}就没问题?

#4



不支持SQLOLEDB驱动?

#5


就看你的机子上是否按照该类型的驱动了,不过一般连接SQL SERVER2000都用Driver={sql server}的,就像连接ORACLE都用ORALCE提供的驱动一样,数据库厂商提供的驱动效率总是会高些,OLE DB是一种通用的驱动,效率比较差,建议你就用第二种吧

#6


5楼的说法并不严谨。
第一种方式是OLEDB方式,第二种是ODBC方式。相对来说还是OLE DB方式效率更高一些,而且连接ORACLE也不是非要ODBC不可。

楼主的问题可能出在安装SQL SERVER过程中有小问题。你可以参考这里尝试一下:
http://www.136z.com/Webbiz/CmsDoc/35025.html

#7


或者尝试更改连接字符串:
"Provider=SQLOLEDB;data source=机器名;initial catalog=数据库名;userid=sa;password=密码"

#8


另外其他可能的原因是你的SQL SERVER版本问题。
如果版本低,要打补丁的

再有就是看看1433或其他你指定的连库端口是否开启,可以用netstat查看一下

#9


引用 6 楼 toury 的回复:
5楼的说法并不严谨。 
第一种方式是OLEDB方式,第二种是ODBC方式。相对来说还是OLE DB方式效率更高一些,而且连接ORACLE也不是非要ODBC不可。 

楼主的问题可能出在安装SQL SERVER过程中有小问题。你可以参考这里尝试一下: 
http://www.136z.com/Webbiz/CmsDoc/35025.html 

是的。。