5-8万年薪顶级嵌入式,京沪深就业地 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

ADODB.Recordset 错误 '800a0e7d'

楼主COMPUTERZZZ(oiu)2006-11-04 16:17:59 在 Web 开发 / ASP 提问

我的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>&nbsp;</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>&nbsp;</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>&nbsp;</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

相关问题

关键词

得分解答快速导航

  • 帖主:COMPUTERZZZ
  • yanjingtu2008
  • yanjingtu2008

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
x 提问