ADODB.Recordset 错误 '800a0e7d' 连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。
答案:2 悬赏:0
解决时间 2021-02-11 00:01
- 提问者网友:前事回音
- 2021-02-10 16:48
ADODB.Recordset 错误 '800a0e7d' 连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。
最佳答案
- 二级知识专家网友:都不是誰的誰
- 2021-02-10 17:58
你找到edit目录下的include目录下的Startup.asp这个文件,然后把下面的代码复制替换掉里面的代码; <%@ Language=VBScript CODEPAGE=936%><br><% Option Explicit %><br><%' ============================================<br>' 常用全局变量<br>' ============================================<br>' 数据库对象<br>Dim oConn, oRs, sSql<br>' ============================================<br>' 初始数据处理<br>' ============================================<br>' 执行每天只需处理一次的事件<br>'Call BrandNewDay()' 初始化数据库连接<br>'Call DBConnBegin()<br>' ********************************************<br>' 以下为初始函数<br>' ********************************************<br>' ============================================<br>' 执行每天只需处理一次的事件<br>' ============================================<br>Sub BrandNewDay()<br> Dim sDate, y, m, d, w<br> Dim sDateChinese<br> sDate = Date()<br> If Application("date_today") = sDate Then Exit Sub y = CStr(Year(sDate))<br> m = CStr(Month(sDate))<br> If Len(m) = 1 Then m = "0" & m<br> d = CStr(Day(sDate))<br> If Len(d) = 1 Then d = "0" & d<br> w = WeekdayName(Weekday(sDate))<br> sDateChinese = y & "年" & m & "月" & d & "日 " & w Application.Lock<br> Application("date_today") = sDate<br> Application("date_chinese") = sDateChinese '今天的中文样式<br> Application.Unlock<br>End Sub ' ********************************************<br>' 以下为数据库相关函数<br>' ********************************************<br>' ============================================<br>' 初始化数据库连接对象<br>' 使用原则:最迟调用,最早释放<br>' ============================================<br>Sub DBConnBegin()<br> ' 如果数据库对象已打开,不要再打开<br> If IsObject(oConn) = True Then Exit Sub ' 你可以不需要打开数据库连接对象而直接打开记录集对象,但如果你需要打开多个记录集对象的话,效率是很低的。<br> ' 如果你不创建一个数据库连接对象,ADO会在每个记录集打开时自动创建一个新的数据库连接对象,就算你用的是相同的SQL语句。<br> Set oConn = Server.CreateObject("ADODB.Connection") On Error Resume Next<br> ' Access数据库<br> oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/ewebeditor.mdb")<br> ' SQL Server 2000数据库<br> 'oConn.Open "Provider=SQLOLEDB.1;Server=localhost;UID=ewebeditor;PWD=123456;Database=ewebeditor"<br><br> If Err.Number > 0 Then<br> ' 显示错误信息,并且发送邮件通知管理员<br> 'Call DBConnError(Err)<br><br> ' 完全地退出正在运行的脚本<br> Response.End<br> End If ' 创建一个记录集<br> Set oRs = Server.CreateObject( "ADODB.Recordset" )<br>End Sub' ============================================<br>' 释放数据库连接对象<br>' ============================================<br>Sub DBConnEnd()<br> On Error Resume Next<br> oRs.Close<br> Set oRs = Nothing<br> oConn.Close<br> Set oConn = Nothing<br>End Sub ' ********************************************<br>' 以下为常用函数<br>' ********************************************<br>' ============================================<br>' 错误返回处理<br>' ============================================<br>Sub Go_Error(str)<br> Call DBConnEnd()<br> Response.Write "<script language=javascript>alert('" & str & "\n\n系统将自动返回前一页面...');history.back();</script>"<br> Response.End<br>End Sub' ============================================<br>' 格式化时间(显示)<br>' 参数:n_Flag<br>' 1:"yyyy-mm-dd hh:mm:ss"<br>' 2:"yyyy-mm-dd"<br>' 3:"hh:mm:ss"<br>' 4:"yyyy年mm月dd日"<br>' 5:"yyyymmdd"<br>' ============================================<br>Function Format_Time(s_Time, n_Flag)<br> Dim y, m, d, h, mi, s<br> Format_Time = ""<br> If IsDate(s_Time) = False Then Exit Function<br> y = cstr(year(s_Time))<br> m = cstr(month(s_Time))<br> If len(m) = 1 Then m = "0" & m<br> d = cstr(day(s_Time))<br> If len(d) = 1 Then d = "0" & d<br> h = cstr(hour(s_Time))<br> If len(h) = 1 Then h = "0" & h<br> mi = cstr(minute(s_Time))<br> If len(mi) = 1 Then mi = "0" & mi<br> s = cstr(second(s_Time))<br> If len(s) = 1 Then s = "0" & s<br> Select Case n_Flag<br> Case 1<br> ' yyyy-mm-dd hh:mm:ss<br> Format_Time = y & "-" & m & "-" & d & " " & h & ":" & mi & ":" & s<br> Case 2<br> ' yyyy-mm-dd<br> Format_Time = y & "-" & m & "-" & d<br> Case 3<br> ' hh:mm:ss<br> Format_Time = h & ":" & mi & ":" & s<br> Case 4<br> ' yyyy年mm月dd日<br> Format_Time = y & "年" & m & "月" & d & "日"<br> Case 5<br> ' yyyymmdd<br> Format_Time = y & m & d<br> End Select<br>End Function' ============================================<br>' 把字符串进行HTML解码,替换server.htmlencode<br>' 去除Html格式,用于显示输出<br>' ============================================<br>Function outHTML(str)<br> Dim sTemp<br> sTemp = str<br> outHTML = ""<br> If IsNull(sTemp) = True Then<br> Exit Function<br> End If<br> sTemp = Replace(sTemp, "&", "&")<br> sTemp = Replace(sTemp, "<", "<")<br> sTemp = Replace(sTemp, ">", ">")<br> sTemp = Replace(sTemp, Chr(34), """)<br> sTemp = Replace(sTemp, Chr(10), "<br>")<br> outHTML = sTemp<br>End Function' ============================================<br>' 去除Html格式,用于从数据库中取出值填入输入框时<br>' 注意:value="?"这边一定要用双引号<br>' ============================================<br>Function inHTML(str)<br> Dim sTemp<br> sTemp = str<br> inHTML = ""<br> If IsNull(sTemp) = True Then<br> Exit Function<br> End If<br> sTemp = Replace(sTemp, "&", "&")<br> sTemp = Replace(sTemp, "<", "<")<br> sTemp = Replace(sTemp, ">", ">")<br> sTemp = Replace(sTemp, Chr(34), """)<br> inHTML = sTemp<br>End Function' ============================================<br>' 检测上页是否从本站提交<br>' 返回:True,False<br>' ============================================<br>Function IsSelfRefer()<br> Dim sHttp_Referer, sServer_Name<br> sHttp_Referer = CStr(Request.ServerVariables("HTTP_REFERER"))<br> sServer_Name = CStr(Request.ServerVariables("SERVER_NAME"))<br> If Mid(sHttp_Referer, 8, Len(sServer_Name)) = sServer_Name Then<br> IsSelfRefer = True<br> Else<br> IsSelfRefer = False<br> End If<br>End Function' ============================================<br>' 得到安全字符串,在查询中使用<br>' ============================================<br>Function Get_SafeStr(str)<br> Get_SafeStr = Replace(Replace(Replace(Trim(str), "'", ""), Chr(34), ""), ";", "")<br>End Function' ============================================<br>' 取实际字符长度<br>' ============================================<br>Function Get_TrueLen(str)<br> Dim l, t, c, i<br> l = Len(str)<br> t = l<br> For i = 1 To l<br> c = Asc(Mid(str, i, 1))<br> If c < 0 Then c = c + 65536<br> If c > 255 Then t = t + 1<br> Next<br> Get_TrueLen = t<br>End Function' ============================================<br>' 判断是否安全字符串,在注册登录等特殊字段中使用<br>' ============================================<br>Function IsSafeStr(str)<br> Dim s_BadStr, n, i<br> s_BadStr = "' &<>?%,;:()`~!@#$^*{}[]|+-=" & Chr(34) & Chr(9) & Chr(32)<br> n = Len(s_BadStr)<br> IsSafeStr = True<br> For i = 1 To n<br> If Instr(str, Mid(s_BadStr, i, 1)) > 0 Then<br> IsSafeStr = False<br> Exit Function<br> End If<br> Next<br>End Function<br>%> <br>另外,你找一下edit/db/ewebeditor.mdb这个文件是否存在
全部回答
- 1楼网友:心与口不同
- 2021-02-10 18:53
看清楚这一句:rs.open sql,conn,1,3,其中conn是数据库连接对象,你没有连接数据库,因此程序无法打开数据表。
应该增加数据库连接语句:
set conn = createobject("adodb.connection")
conn.open "这里填写数据库连接语句"
例如:
set conn=server.createobject("adodb.connection")
dbpath = server.mappath("/123.mdb")'将123.mdb改写为你的数据库名
conn.open "driver={microsoft access driver (*.mdb)};dbq=" & dbpath
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯