ASP无法访问WIN2008R2下的SQL2008数据库

时间:2021-01-28 18:47:34
前段时间,买了一个阿里云主机ECS,并在阿里云主机中安装了SQL SERVER 2008 R2版本的数据库系统;在云主机中安装了IIS7.5版本的服务器,搭建好ASP环境,但是始终无法用ASP连接上SQL2008数据库,也不显示错误信息,求各位大哥大姐帮帮忙,小弟不胜感激!贴出ASP访问代码如下:
第一种:
Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={SQL Server};server=localhost;uid=sa;pwd=XXXX;database=mmm"
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from ditable where dihao='A2'
rs.open sqlstr,conn,1,3

第二种:
Set conn = Server.CreateObject("ADODB.Connection")
connStr="Provider=SQLNCLI10;Persist Security Info=True;Data Source=127.0.0.1;uid=sa;pwd=XXXX;database=mmm"
Conn.Open connstr

第三种:
set conn=server.createobject("adodb.connection")
conn.open "provider=sqloledb;source=(local);uid=sa;pwd=XXXX;database=mmm"

曾经尝试过很多种方法,均无法连接上数据库。

7 个解决方案

#1


1 用SQL Server Native Client  方式连,就是第二种
如果sql和iis在一台机器上,可以试试看 信任连接
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;
Trusted_Connection=yes;
2 用主机本地的管理工具-数据源ODBC连接看看能连上吗,能连上的话,查一下SQL Server的配置工具 里 协议TCP/IP默认端口是不是配置到1433了。
3 在 SQL Server Management Studio 的服务器属性里看下 安全性里 是不是设置了混合模式登录, 连接 里 是不是勾选了允许远程连接。 

#2


去掉on error resume next语句看具体报什么错误。默认iis7+不只显示asp详细错误,需要自己配置过iis才行
ASP无法访问WIN2008R2下的SQL2008数据库

Web开发学习资料推荐
easyui datebox只显示年月选择,隐藏日期
jqGrid colModel配置参数

#3


1,需要安装 Microsoft® SQL Server® 2008 R2 Native Client 
下载地址
https://www.microsoft.com/zh-CN/download/details.aspx?id=44272

2,SQL Server配置中用户名 密码 允许sql连接 允许远程链接 允许tcp/ip链接都要打开
3,防火墙端口要放开
4,写法

Set cn = Server.CreateObject("ADODB.Connection")
' 此处连接的是SQL Server 2008数据库,其他数据库修改连接字符串。
cn.Open "Provider=SQLNCLI10;Server=( local);Database=数据库名称;Uid=用户名;Pwd=密码;"

local可以替换成ip

#4


另外也可能不是连接数据库的问题,iis设置本身也可能有问题。尤其是在64位系统下

#5


引用 1 楼 hookee 的回复:
1 用SQL Server Native Client  方式连,就是第二种
如果sql和iis在一台机器上,可以试试看 信任连接
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;
Trusted_Connection=yes;
2 用主机本地的管理工具-数据源ODBC连接看看能连上吗,能连上的话,查一下SQL Server的配置工具 里 协议TCP/IP默认端口是不是配置到1433了。
3 在 SQL Server Management Studio 的服务器属性里看下 安全性里 是不是设置了混合模式登录, 连接 里 是不是勾选了允许远程连接。 


hookee师傅,谢谢您的耐心回答,您的方法我每一个都按照顺序做了一遍,还是不能正常连接。(第一种,没有反应,跟之前的一样;第二种,ODBC能正常连接数据库,但是ASP访问数据库的问题依旧(端口已经配置到1433);第三种,安全性混合模式,连接勾选远程连接,依然解决不了。)不知您是否有空,是否愿意帮我有偿调试?(我给您提供阿里云主机的帐号和密码)

#6


引用 2 楼 showbo 的回复:
去掉on error resume next语句看具体报什么错误。默认iis7+不只显示asp详细错误,需要自己配置过iis才行
ASP无法访问WIN2008R2下的SQL2008数据库

Web开发学习资料推荐
easyui datebox只显示年月选择,隐藏日期
jqGrid colModel配置参数



showbo师傅,谢谢您的耐心回答,去掉on error resume next语句后,提示:数据库载入错误!

不知您是否有空,是否愿意帮我有偿调试?(我给您提供阿里云主机的帐号和密码,我的联系QQ27215080,微信wuyexingkong8)

#7


谢谢各位,我的问题已经解决了,代码如下:

Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={SQL Server};server=localhost;uid=sa;pwd=XXXX;database=mmm"
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from ditable where dihao='A2'
rs.open sqlstr,conn,1,3

以上代码,如果使用ACCESS可以正常读取数据库,但是如果改成MS SQL 2008 R2数据库,不正常,问题出在第5行代码

需要将:sqlstr="select * from ditable where dihao='A2'
改成
sqlstr="select * from ditable where dihao='" & str('A2') & "'"
才能正常运行(我实际使用中是A2处使用的是变量,需要对变量进行字符串函数处理一下就可以了)。



#1


1 用SQL Server Native Client  方式连,就是第二种
如果sql和iis在一台机器上,可以试试看 信任连接
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;
Trusted_Connection=yes;
2 用主机本地的管理工具-数据源ODBC连接看看能连上吗,能连上的话,查一下SQL Server的配置工具 里 协议TCP/IP默认端口是不是配置到1433了。
3 在 SQL Server Management Studio 的服务器属性里看下 安全性里 是不是设置了混合模式登录, 连接 里 是不是勾选了允许远程连接。 

#2


去掉on error resume next语句看具体报什么错误。默认iis7+不只显示asp详细错误,需要自己配置过iis才行
ASP无法访问WIN2008R2下的SQL2008数据库

Web开发学习资料推荐
easyui datebox只显示年月选择,隐藏日期
jqGrid colModel配置参数

#3


1,需要安装 Microsoft® SQL Server® 2008 R2 Native Client 
下载地址
https://www.microsoft.com/zh-CN/download/details.aspx?id=44272

2,SQL Server配置中用户名 密码 允许sql连接 允许远程链接 允许tcp/ip链接都要打开
3,防火墙端口要放开
4,写法

Set cn = Server.CreateObject("ADODB.Connection")
' 此处连接的是SQL Server 2008数据库,其他数据库修改连接字符串。
cn.Open "Provider=SQLNCLI10;Server=( local);Database=数据库名称;Uid=用户名;Pwd=密码;"

local可以替换成ip

#4


另外也可能不是连接数据库的问题,iis设置本身也可能有问题。尤其是在64位系统下

#5


引用 1 楼 hookee 的回复:
1 用SQL Server Native Client  方式连,就是第二种
如果sql和iis在一台机器上,可以试试看 信任连接
Provider=SQLNCLI10;Server=myServerAddress;Database=myDataBase;
Trusted_Connection=yes;
2 用主机本地的管理工具-数据源ODBC连接看看能连上吗,能连上的话,查一下SQL Server的配置工具 里 协议TCP/IP默认端口是不是配置到1433了。
3 在 SQL Server Management Studio 的服务器属性里看下 安全性里 是不是设置了混合模式登录, 连接 里 是不是勾选了允许远程连接。 


hookee师傅,谢谢您的耐心回答,您的方法我每一个都按照顺序做了一遍,还是不能正常连接。(第一种,没有反应,跟之前的一样;第二种,ODBC能正常连接数据库,但是ASP访问数据库的问题依旧(端口已经配置到1433);第三种,安全性混合模式,连接勾选远程连接,依然解决不了。)不知您是否有空,是否愿意帮我有偿调试?(我给您提供阿里云主机的帐号和密码)

#6


引用 2 楼 showbo 的回复:
去掉on error resume next语句看具体报什么错误。默认iis7+不只显示asp详细错误,需要自己配置过iis才行
ASP无法访问WIN2008R2下的SQL2008数据库

Web开发学习资料推荐
easyui datebox只显示年月选择,隐藏日期
jqGrid colModel配置参数



showbo师傅,谢谢您的耐心回答,去掉on error resume next语句后,提示:数据库载入错误!

不知您是否有空,是否愿意帮我有偿调试?(我给您提供阿里云主机的帐号和密码,我的联系QQ27215080,微信wuyexingkong8)

#7


谢谢各位,我的问题已经解决了,代码如下:

Dim conn
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={SQL Server};server=localhost;uid=sa;pwd=XXXX;database=mmm"
set rs=server.CreateObject("adodb.recordset")
sqlstr="select * from ditable where dihao='A2'
rs.open sqlstr,conn,1,3

以上代码,如果使用ACCESS可以正常读取数据库,但是如果改成MS SQL 2008 R2数据库,不正常,问题出在第5行代码

需要将:sqlstr="select * from ditable where dihao='A2'
改成
sqlstr="select * from ditable where dihao='" & str('A2') & "'"
才能正常运行(我实际使用中是A2处使用的是变量,需要对变量进行字符串函数处理一下就可以了)。