我有一个网站,我想在IIS Windows XP上运行,但在我尝试连接的登录页面上,我从文件中获取此错误(Access.asp)
以下是文件代码:
<%@ Language=VBScript %>
<!--#include file="PerformClear.asp"-->
<!--#include file="expire.vbs"-->
<%'Déclarations de toutes les variables de cette page
dim login, password, numu
dim sql, rs , conn
'Response.Redirect("PleaseWait.htm")
login = Trim(Replace(Request.Form ("login"),"'","''"))
password = Trim(Replace(Request.Form ("password"),"'","''"))
'Response.write (nom)
if (login<>"") and (password<>"") then
SQL = "SELECT * FROM Cadre WHERE Utilisateur='" & login & "' & pw='" & password & "'"
Set rs = Session("conn").Execute(SQL)
If not rs.eof then 'alors l'utilisateur est bien identifié'
session("nom")=rs("utilisateur") 'pour se rappeler de l'utilisateur
session("num")=rs("code_cadre")
numu=rs("code_cadre")
rs.Close
set rs=nothing
Response.Redirect "."
else
rs.Close
set rs=nothing
Response.Redirect "erreur.asp?Code=1"
end if
rs.close
set rs = nothing
else
Response.Redirect("erreur.asp?Code=1")
end if
%>
我得到的错误是:
ADODB.Connection错误'800a0e78'操作失败且未经授权 因为对象已关闭
请帮助我迷路了。
答案 0 :(得分:0)
你不应该在Session对象中存储ADODB连接,这会强制线程亲和力,这是有害的,效率很低。
只要您使用相同的连接字符串,它就会自动汇集,在页面中需要时连接并关闭新连接。
此外,您在此使用&符号而不是AND
:
"SELECT * FROM Cadre WHERE Utilisateur='" & login & "' & pw='" & password & "'"
更改为:
"SELECT * FROM Cadre WHERE Utilisateur='" & login & "' AND pw='" & password & "'"