奇怪的ADODB.Recordset 错误 '800a0e7d'

lengcj 2011-01-18 10:43:19
跟目录首页index.asp里
<!--#include file="Config/Config.asp"-->
<!--#include file="App_Code/App_Code.asp"-->
跟目录字目录webmanage是后台,里面的article_manage.asp文件
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="../Config/Config.asp"-->
<!--#include file="../App_Code/App_Code.asp"-->

现在是article_manage.asp可正常连接数据库,完整显示新闻列表
首页index.asp报错
ADODB.Recordset 错误 '800a0e7d'

连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。

/App_Code/Utility/DB.asp,行 74

db.asp
72行 if TypeName(SqlStr)<>"String" then SqlStr = SqlStr '调用SqlSelect 的默认方法返回Sql语句

74行 f_rs.open SqlStr,conn,Cursor_Type,Lock_Type,&H0001
75行 set Exec = f_rs

/App_Code/Utility/Utility.asp
<!--#include file="DB.asp"--> <% ' 数据处理 %>

App_Code/App_Code.asp
<!--#include file="Utility/Utility.asp"-->

Config/Config.asp
C_DBNameArr = Array("../EimmData/EimmData.mdb","../../EimmData/EimmData.mdb","G:/xxx/EimmData/EimmData.mdb")
...全文
53 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lengcj 2011-01-18
  • 打赏
  • 举报
回复
问题是首页index.asp和子目录article_manage.asp文件都是调用

<!--#include file="../Config/Config.asp"-->
<!--#include file="../App_Code/App_Code.asp"-->

结果怎么会不一样?
lengcj 2011-01-18
  • 打赏
  • 举报
回复
App_Code/Utility/DB.asp
<% 
Class DB
public Conn
public ConnStr
public ErrStr

Private Sub class_Initialize()
set Conn = server.CreateObject("adodb.connection")
End Sub

Private Sub class_Terminate()
Close()
End Sub

Function Open()
if conn.state=0 then
on error resume next
for each ConnStr in C_ConnArr
'response.Write ConnStr & "<br>"
Conn.connectionstring = ConnStr
Conn.open()
if Conn.State then exit for
next

end if
End Function

Function Close()
if conn.state=1 then
conn.close()
end if
End Function


Function ExecQ(SqlStr)
Call Exec(SqlStr,0,1)
End Function

Function ExecR(SqlStr)
set ExecR = Exec(SqlStr,0,1)
End Function

Function ExecS(SqlStr)
Dim tempRs
set tempRs = ExecR(SqlStr)
if not tempRs.eof then
ExecS = tempRs(0)
else
ErrStr = ""
end if
set tempRs = Nothing
End Function

Function ExecW(SqlStr)
set ExecW = Exec(SqlStr,1,2)
End Function

Function Exec(SqlStr,Cursor_Type,Lock_Type)
Dim f_rs
Open()
set f_rs = server.CreateObject("adodb.recordset")
if session("SqlNum")="" then
session("SqlNum") =1
else
session("SqlNum") = session("SqlNum") + 1
end if

'response.Write conn.connectionstring
'response.Write conn.state
'response.Write SqlStr & "<br>"

if TypeName(SqlStr)<>"String" then SqlStr = SqlStr '调用SqlSelect 的默认方法返回Sql语句

f_rs.open SqlStr,conn,Cursor_Type,Lock_Type,&H0001
set Exec = f_rs
End Function

End Class
%>
ycproc 2011-01-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 chinmo 的回复:]

连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。

其实这个提示很清楚了
由于你连接数据库的对象在使用之前被关闭了
也就是说,可能是rs.close或者set rs=nothing这样的语句了
[/Quote]

与数据库之间的连接问题
  • 打赏
  • 举报
回复
连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。

其实这个提示很清楚了
由于你连接数据库的对象在使用之前被关闭了
也就是说,可能是rs.close或者set rs=nothing这样的语句了

28,391

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧