ADODB.Recordset 错误 '800a0e7d'
我的ASP页网出现:ADODB.Recordset 错误 '800a0e7d'
好像没什么错误呀!
myconn.asp
<%
Dim MM_myconn_STRING,db
db=server.MapPath("tree.mdb")
set MM_myconn_STRING=server.createobject("ADODB.connection")
MM_myconn_STRING.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=;dbq="&db
'MM_myconn_STRING = "dsn=tree;"
%>
出错网页:savetofile.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="upfile_class.asp"-->
<!--#include file="connections/myconn.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title></title>
<%
Function GetFilePath(FullPath,str)
if FullPath<>"" then
GetFilePath=left(FullPath,InstrRev(FullPath,str))
else
GetFilePath=""
End If
End Function
Function ConverToServerFile(strSavePath,Strmodifypath) 'modifypath为必转换的字符串
Dim strFilename,lastPos,SavePath,strTemp
SavePath = Trim(strSavePath) '这里是你要放在服务器上的目录
strFilename = Trim(Strmodifypath) '在这里就是获取你前一页的文本框的值
If strFilename = "" Then
ConverToServerFile = "ERROR"
Exit Function
End If
lastPos = InstrRev(strFilename,"\") + 1
strTemp = Mid(strFilename,lastPos)
ConverToServerFile = SavePath & strTemp
End Function
%>
<style type="text/css">
<!--
body,td {
background-color: #00CCFF;
font-family:宋体;
font-size: 12px;
}
-->
</style></head>
<body leftmargin="0" topmargin="0">
<p> </p>
<p><a href="Main.asp">首页</a>|<a href="DocManage.asp">文档管理</a>|<a href="MangmentTreeView.asp">菜单管理</a></p>
<p>
<%
Dim upfile,savepath,tempstr,oFile,strvb,des
Dim filenamestr '前一页的file域
Dim Cmd1,str
savepath="UploadFiles/"
set upfile=new upfile_class
tempstr=server.MapPath("upfile_class.asp")
'Response.Write(tempstr&"<br>")
FSPath=GetFilePath(tempstr,"\")
'response.Write(tempstr)
upfile.GetData(10240000) '10M
if upfile.Err>0 then
select case upfile.isErr
case 1
msg="你没能上传文件"
case 2
msg="你上传的文件超出我们的限制,最大10M"
end select
else
' set oFile=upfile.file("file")
'Response.Write "<br>"
' Response.Write(oFile.filename)
upfile.file("file").savetofile FSPath&savepath&upfile.file("file").filename
' strvb="<script language='vbscript'>"&vbcrlf
'strvb=strvb&"parent.document.form1.textfield1.value='"&cstr(FSPath&savepath&upfile.file("file").filename)&"'"&vbcrlf
' Response.Write(strvb)
Set oFile=upfile.file("file")
filenamestr=oFile.filename
str=savepath&filenamestr
' Response.write( str )
des=upfile.form("textfield2")
Set Cmd1=server.createobject("ADODB.Command")
Cmd1.ActiveConnection=MM_myconn_STRING
Cmd1.CommandText="insert into tsearch(filenamestr,description) values('"&str&"','"&des&"')"
Cmd1.Execute
Cmd1.ActiveConnection.Close
' Response.Write("文件上传成功!")
set oFile=Nothing
set upfile=nothing
end if
'Response.Redirect("upload.asp")
%>
<%
Dim rs1
Set rs1=Server.CreateObject("ADODB.Recordset")
rs1.ActiveConnection=MM_myconn_STRING
rs1.CursorType=1
rs1.LockType=1
rs1.Source="select top 1 * from tsearch order by ID desc"
rs1.Open()
%>
</p>
<p> </p>
<table border="1" align="center" bordercolorlight="#000000" bordercolordark="#ffffff">
<tr>
<td width="128">关键字</td>
<td width="211">
<%If rs1("description")<>"" Then
Response.Write( rs1("Description") )
Else
Response.Write( "<br>" )
End If
%></td>
</tr>
<tr>
<td>文件位置</td>
<td>
<%If rs1("Filenamestr")<>"" Then
Response.Write( rs1("Filenamestr") )
Else
Response.Write( "<br>" )
End If
%> </td>
</tr>
<tr>
<td colspan="2" align="center"><a href="Upload.asp">【继续上传文档】</a> <a href="javascript:onclick=window.close()"> 【关闭】</a></td>
</tr>
</table>
<p> </p>
</body>
</html>
<% rs1.Close
Set rs1=Nothing
%>
问题点数:100、回复次数:29Top
1 楼huo789(四火)回复于 2006-11-04 16:28:41 得分 0
贴出全部错误信息以及出错位置Top
2 楼COMPUTERZZZ(oiu)回复于 2006-11-04 16:32:08 得分 0
Microsoft VBScript 编译器错误 错误 '800a03f6'
缺少 'End'
/iisHelp/common/500-100.asp,行242
ADODB.Recordset 错误 '800a0e7d'
连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。
/glp/SaveToFile.asp,行94
Top
3 楼yanjingtu2008()回复于 2006-11-04 16:35:42 得分 50
问题出在这:
myconn.asp
<%
Dim MM_myconn_STRING,db
db=server.MapPath("tree.mdb")
set MM_myconn_STRING=server.createobject("ADODB.connection")
MM_myconn_STRING.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=;dbq="&db
'MM_myconn_STRING = "dsn=tree;"
%>
你用的是数据源,没在自己的机器上设置数据源吧?!Top
4 楼COMPUTERZZZ(oiu)回复于 2006-11-04 16:39:10 得分 0
我把连接文件换成DSN连接就OK
myconn.asp
<%
Dim MM_myconn_STRING,db
MM_myconn_STRING = "dsn=tree;"
%>
换成这样就行了,怎么会这样?Top
5 楼COMPUTERZZZ(oiu)回复于 2006-11-04 16:41:01 得分 0
yanjingtu2008():请看清楚,MM_MYCONN_STRING="DSN=TREE;"这句有个注释号‘
我把它注掉了!Top
6 楼yanjingtu2008()回复于 2006-11-04 16:43:03 得分 50
那试试这么改改myconn.asp看行不行:
Dim MM_myconn_STRING,db
db=server.MapPath("tree.mdb")
set MM_myconn_STRING=server.createobject("ADODB.connection")
MM_myconn_STRING.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&db
Top
7 楼COMPUTERZZZ(oiu)回复于 2006-11-04 16:43:18 得分 0
为什么自定义连接不行?Top
8 楼yanjingtu2008()回复于 2006-11-04 16:47:39 得分 0
我用自定义连接时一直是用以下代码,没任何问题啊:
'dbconn.inc
<%
Dim objConn,connStr
Set objConn = Server.CreateObject("ADODB.Connection")
connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath ("../db.mdb")
objConn.Open connStr
%>Top
9 楼COMPUTERZZZ(oiu)回复于 2006-11-04 16:48:55 得分 0
改了还是一样Top
10 楼yanjingtu2008()回复于 2006-11-04 16:59:19 得分 0
数据库和savetofile.asp在一个目录下吗?
ADODB.Recordset 错误 '800a0e7d' 的意思好象是找不到数据库啊!
<!--#include file="connections/myconn.asp"-->表示把代码加入到asp文件中。
试试吧,我可别无它法了。Top
11 楼COMPUTERZZZ(oiu)回复于 2006-11-04 17:04:01 得分 0
本来就有,你没看上面的代码吗?Top
12 楼hanpoyangtitan(韩波洋)回复于 2006-11-04 17:40:22 得分 0
你的数据库文件路径写错了
请问一下你的数据库是不是和myconn.asp同目录?还是和savetofile.asp 同目录
前者db=server.mappath("/")&"\connection\tree.mdb"
后者db=server.mapPath("/")&"\tree.mdb"Top
13 楼hanpoyangtitan(韩波洋)回复于 2006-11-04 17:42:02 得分 0
注:savetofile.asp在根目录Top
14 楼COMPUTERZZZ(oiu)回复于 2006-11-04 17:53:53 得分 0
savetofile.asp是在根目录.
可是我其它网页读数据不问题,只有这一网有问题,如果是连接文件有问题的话,所有的网页教不能读取数据!!Top
15 楼hanpoyangtitan(韩波洋)回复于 2006-11-04 17:56:37 得分 0
你上面的代码 你这样也可以,给每个目录放置一个数据库文件应该就没有错了Top
16 楼shiliangdong(Stou)回复于 2006-11-04 17:59:22 得分 0
adErrInvalidConnection 3709 0x800A0E7D 应用程序通过引用关闭或无效的Connection 对象来请求对对象的操作。Top
17 楼COMPUTERZZZ(oiu)回复于 2006-11-04 18:01:45 得分 0
我所有的网页都在根目录下Top
18 楼COMPUTERZZZ(oiu)回复于 2006-11-04 18:02:50 得分 0
adErrInvalidConnection 3709 0x800A0E7D 应用程序通过引用关闭或无效的Connection 对象来请求对对象的操作。
这个我知道,可是我其它的网页怎以可以读数据.就这个网页不行???Top
19 楼hanpoyangtitan(韩波洋)回复于 2006-11-04 18:10:30 得分 0
1.<%
Dim MM_myconn_STRING,db
db=server.MapPath("tree.mdb")
set MM_myconn_STRING=server.createobject("ADODB.connection")
response.write db
response.end '看一下这个路径是不是你的数据库存放的物理路径????
MM_myconn_STRING.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=;dbq="&db
%>
2.<%
Dim MM_myconn_STRING,db
db=server.MapPath("tree.mdb")
set MM_myconn_STRING=server.createobject("ADODB.connection")
'response.write db
'response.end '看一下这个路径是不是你的数据库存放的物理路径????
on error resume next
MM_myconn_STRING.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=;dbq="&db
if err then response.write err.description
response.end
' 查看错误类型
%>
Top
20 楼COMPUTERZZZ(oiu)回复于 2006-11-04 21:26:35 得分 0
路径是对的Top
21 楼tomorrow819(只爱天生)回复于 2006-11-04 21:45:41 得分 0
www.kaixingu.netTop
22 楼COMPUTERZZZ(oiu)回复于 2006-11-04 21:55:58 得分 0
怎么没人,搞的定Top
23 楼sh_city(潜水的鱼)回复于 2006-11-04 21:57:19 得分 0
这是你的权限不够,Top
24 楼cxc3214(花园里开满小红花.)回复于 2006-11-05 10:06:39 得分 0
mark!Top
25 楼IT_zen(James大帝)回复于 2006-11-05 10:21:25 得分 0
我怎么老感觉你的数据库没有打开呢Top
26 楼IT_zen(James大帝)回复于 2006-11-05 10:21:48 得分 0
只是连接上了,但是没有打开Top
27 楼biyao()回复于 2006-11-05 11:05:54 得分 0
Cmd1.ActiveConnection.Close
是不是这个已经关闭了啊,关闭了得重新打开他Top
28 楼biyao()回复于 2006-11-05 11:15:27 得分 0
造成原因:去掉了windows的安全中的权限-POWER USER的权限造成的。添加回去就好了。
不行,你加个EveryOne都给读写权限试试
在数据库所在文件夹添加Top
29 楼COMPUTERZZZ(oiu)回复于 2006-11-05 15:54:13 得分 0
biyao():
后面还有呀!
<%
Dim rs1
Set rs1=Server.CreateObject("ADODB.Recordset")
rs1.ActiveConnection=MM_myconn_STRING
rs1.CursorType=1
rs1.LockType=1
rs1.Source="select top 1 * from tsearch order by ID desc"
rs1.Open() '这里不就打开了
%>
有一点:请大家注意,我把MYCONN.ASP的连接方式换成DSN就可以,用自定义连接方式在这个网页出现这个问题,别的网页可以读取数据库的数据.
Top



