CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

ASP连接数据库,对数据库记录为何不能进行删除操作?急!!!!

楼主kisswind(让心情去流浪)2002-04-24 09:05:21 在 Web 开发 / ASP 提问

各位高手:为何我不能进行数据库记录的删除操作呢?我的系统是Windows2000   Professional(2195)+sp2+IIS   5.0+Access   2000。我想对数据进行删除操作,但是IE却提示我出错,以下是我的源代码,请各位高手赐教!谢谢!本人非常着急,要在五一之前完工!  
   
  <%@   Language=VBScript   %>  
   
  <%  
   
   
          Set   objConn   =   Server.CreateObject("ADODB.Connection")  
          DBPath=Server.MapPath("database.mdb")  
          objConn.Open   "driver={Microsoft   Access   Driver   (*.mdb)};dbq="   &   DBPath  
          set   rs   =   Server.CreateObject("ADODB.Recordset")  
          sql="delete   from   data   "  
          rs.Open   sql,objConn,adOpenDynamic,adLockPessimistic  
                   
  %>  
   
  <HTML>  
  <HEAD><title></title>  
  <META   NAME="GENERATOR"   Content="Microsoft   Visual   Studio   6.0">  
  </HEAD>  
  <BODY>  
   
  <P>&nbsp;</P>  
   
   
   
  </BODY>  
  </HTML>  
  问题点数:100、回复次数:18Top

1 楼wangfei2428(龙飞)回复于 2002-04-24 09:07:52 得分 20

sql="delete   from   data   "  
          rs.Open   sql,objConn,adOpenDynamic,adLockPessimistic  
  改为  
  sql="delete   *   from   data   "  
  objconn.execute(sql)Top

2 楼wangfei2428(龙飞)回复于 2002-04-24 09:08:33 得分 0

如还有问题  
  wangfeifei2428@hotmail.comTop

3 楼kisswind(让心情去流浪)回复于 2002-04-24 09:08:56 得分 0

另外IE提示是:  
    错误类型 ADODB.Recordset   (0x800A0BB9)  
  Top

4 楼CodeDuDu(都都)回复于 2002-04-24 09:10:23 得分 5

sql="delete   from   data   "  
  objconn.execute(sql)Top

5 楼kisswind(让心情去流浪)回复于 2002-04-24 09:13:05 得分 0

另附上IE提示:  
   
  错误类型:Microsoft   OLE   DB   Provider   for   ODBC   Drivers   (0x80004005)  
  Top

6 楼ChinaOk(农村表哥)回复于 2002-04-24 09:14:23 得分 5

adOpenDynamic,adLockPessimistic  
  这些都是adovb.inc里定义的常量。所以你要包含这个文件。  
  不然你就用数字来代替这些变量。  
  另外你删除的sql不对。  
  delete   *   from   data    
  这样你就把数据全删出了。  
  delete   *   from   data   where   Key13D'value1'Top

7 楼kisswind(让心情去流浪)回复于 2002-04-24 09:15:14 得分 0

多谢两位的回复,不过还是有问题,我怀疑是不是数据库的问题,不知道两位有何指教?Top

8 楼wangfei2428(龙飞)回复于 2002-04-24 09:17:28 得分 0

是不是连接有错误  
        dim   objconn        
        dim   connstr  
        connstr="DBQ="+server.mappath("database.mdb")+";DefaultDir=;DRIVER={Microsoft   Access   Driver   (*.mdb)};"  
        set   objconn=server.createobject("ADODB.CONNECTION")  
        objconn.open   connstrTop

9 楼kisswind(让心情去流浪)回复于 2002-04-24 09:20:54 得分 0

回ChinaOK:  
  可是我查找了硬盘所有的文件都没有:adovb.inc这个文件啊?我的系统也装了有VBTop

10 楼kisswind(让心情去流浪)回复于 2002-04-24 09:25:06 得分 0

回wangfei2428:  
  我的连接应该是没有问题的,因为我曾经写过查询功能的,没有问题,能够正确的返回我所需要的结果。Top

11 楼kisswind(让心情去流浪)回复于 2002-04-24 09:29:25 得分 0

delete   *   from   data   where   Key13D'value1'  
  恕我愚昧,请问这是什么意思啊?Top

12 楼scgqq(轻骑兵)回复于 2002-04-24 09:31:27 得分 5

这是我的删除代码,一点问题都没有  
  StrSQL   =   "delete   from   t_PerRequestForm   WHERE     cRequestName='"&ren&"'   and   dRequestTime='"&red&"'"  
  Conn.Execute   (StrSQL)Top

13 楼wangfei2428(龙飞)回复于 2002-04-24 09:33:47 得分 0

您可以不要adovb.inc这个文件,用这个试试  
   
        dim   objconn        
        dim   connstr  
        connstr="DBQ="+server.mappath("database.mdb")+";DefaultDir=;DRIVER={Microsoft   Access   Driver   (*.mdb)};"  
        set   objconn=server.createobject("ADODB.CONNECTION")  
        objconn.open   connstr  
   
        sql="delete   *   from   data   "  
        objconn.execute(sql)  
  Top

14 楼setfocus(斗是懂一点)回复于 2002-04-24 09:39:44 得分 5

Set   objConn   =   Server.CreateObject("ADODB.Connection")  
          DBPath=Server.MapPath("database.mdb")  
          objConn.Open   "driver={Microsoft   Access   Driver   (*.mdb)};dbq="   &   DBPath  
          set   rs   =   Server.CreateObject("ADODB.Recordset")  
          rs.open   "select   *   from   data",objConn,3,3  
          rs.delete  
          rs.close  
  Top

15 楼kisswind(让心情去流浪)回复于 2002-04-24 09:50:53 得分 0

我查看了一下IE提示的错误:  
  Microsoft   OLE   DB   Provider   for   ODBC   Drivers   (0x80004005)  
  不支持此接口,我想是不是通过SQL语句操作数据库的问题呢?  
   
  Top

16 楼abigfrog(千年精灵)(★JAVA★)回复于 2002-04-24 10:08:00 得分 10

strconn   =   "DRIVER=Microsoft   Access   Driver   (*.mdb);DBQ="   &   Server.MapPath("database.mdb")    
  set   conn   =   server.createobject("adodb.connection")    
  conn.open   strconn    
  conn.execute("delete   from   data   ")Top

17 楼abigfrog(千年精灵)(★JAVA★)回复于 2002-04-24 10:12:38 得分 0

如果你的数据库路径不错的话,下面程序肯定可以。  
  注意:这里的数据库路径是相对路径!  
   
        dim   conn        
        dim   connstr  
        connstr="DBQ="+server.mappath("database.mdb")+";DefaultDir=;DRIVER={Microsoft   Access   Driver   (*.mdb)};"  
        set   conn=server.createobject("ADODB.CONNECTION")  
        conn.open   connstr    
        conn.execute("delete   from   data   ")  
  Top

18 楼BrightEye(男儿当自强,靠别人不如靠自己)回复于 2002-04-24 11:10:53 得分 50

ASP中常见的错误80004005信息和解决办法  
  错误80004005信息处理方法  
   
  错误信息(错误信息我不用翻译成中文了把,呵呵,大家谅解)  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'  
          [Microsoft][ODBC   Microsoft   Access   97   Driver]   The   Microsoft   Jet   database  
          engine   cannot   open   the   file   '(unknown)'.   It   is   already   opened   exclusively  
          by   another   user,   or   you   need   permission   to   view   its   data.    
  原因:  
          这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录  
          没有正确的权限.(这就是为什么在Win95和PWS下没问题,因为win95根本就没有目录权限这一说)  
          检查文件和目录的权限.   确定你能够在该目录中有能够新建和删除临时文件的权限。  
          这些临时文件其实是数据库建立在同一个目录下的文件,   但是要注意的是,有可能这些文件  
          也可能建立在别的目录,例如   /Winnt.  
   
          使用NT的文件监视程序监视文件失败时到底是访问了什么目录。  
          这个NT的文件监视程序可以在这个地方下载http://www.sysinternals.com.    
   
          如果你对数据库使用了一个网络地址,例如映射地址,就要检查一下共享文件和目录的权限,  
   
          还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,  
          这些别的程序一般是Visual   InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。  
   
          这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用  
          本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。  
          还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。  
   
  错误信息:  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'  
          [Microsoft][ODBC   Microsoft   Access   97   Driver]   Couldn't   use   '(unknown)';   file  
          already   in   use.    
  原因:  
          多人使用时数据库被锁定。  
   
  错误信息:  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'  
          [Microsoft][ODBC   Driver   Manager]   Data   source   name   not   found   and   no   default  
          driver   specified.    
  原因:  
          最可能的原因是ConnectString是一个在global.asa中初始化的Session变量         ,但是global.asa  
          却没有正常工作。解决办法是,检查赋值时是否正确:(在你的asp中加入下面的代码)  
                  <%=   "'auth_user'   is   "   &   request.servervariables("auth_user")%>  
                  <P>  
                  <%=   "'auth_type'   is   "   &   request.servervariables("auth_type")%>  
                  <P>  
                  <%=   "connection   string   is   "   &   session("your_connectionstring")%>  
                  <P>    
          还有一个原因就是你在你的ConnectString中加入了多余的空格,例如  
                                  DSN   =   MyDSN;   Database   =   Pubs;    
          试试改成下面这个样子:  
                                  DSN=MyDSN;Database=Pubs;  
   
          如果是global.asa还没有工作,检查该文件是否在运用程序的根目录中,或者是虚拟目录的根目录中。  
   
          还有可能错误出现的原因是DSN名称没找着,这可以采用我提供的id=36767的办法解决。  
          最后是检查是否安装了最新的驱动程序,既是否是最新的MDAC版本。  
   
  错误信息  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'  
          [Microsoft][ODBC   Driver   Manager]   Data   source   name   not   ??    
  原因:  
          这个错误有可能是出现在你的计算机上软件安装(或则反安装)的顺序上。  
          如果ODBC的版本不一致的话,就会发生该错误。  
          解决办法是安装最新版本的MDAC  
   
  错误信息:  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'  
          [Microsoft][ODBC   Access   97   ODBC   driver   Driver]General   error   Unable   to   open  
          registry   key   'DriverId'.    
  原因:  
          这个错误发生在爱从注册表中读取数值的时候。   使用regedit32.exe检查你的注册表的权限。  
          你也可以使用NT中的注册表监视程序(NTRegMon)来看读取失败信息。   该程序到这找:http://www.sysinternals.com  
   
  错误信息:  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'  
          [Microsoft][ODBC   SQL   Server   Driver][dbnmpntw]ConnectionOpen   (CreateFile()).  
  原因:  
          两个原因:当一个数据库中包含有分别在不用机器上的许可关系时,  
          这也可能发生在同一台机器上,当你给一个关系设置了UNC路径,而另一个关系却是本地路径。  
          错误原因是:  
          当用户使用IIS匿名帐号登录后,对本地这台机器而言他是有权的,但是对于一个UNC路径的机器,  
          另外这台机器是不会认为你当前匿名登录的帐号在它那上面也是合法的。  
          这样它就不允许你访问它上面的资源,导致错误。  
   
          两个解决办法:  
          1。在IIS工具中,改变IIS匿名帐号成另外一个基于域的帐号。(也就是不使用匿名登录)  
          2。或则在那台你要访问资源的机器上也创建一个和当前匿名帐号同样的帐号,使用同样的密码。  
   
  错误信息  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'   Microsoft][ODBC  
          Microsoft   SQL   Driver]   Logon   Failed()    
  原因:  
          该错误是由SQL   Server产生的,当它不接受或则不能够认识这个登录帐号的时候,或者没有使用管理员身份登录,  
          也可能是在NT中没有SQL影射帐号造成的。  
   
          使用系统管理员帐号(SA)登录,一般密码应该为空.注意,这时必须使用CoonectString而不能够使用DSN文件。  
          因为DSN中没有保存用户名和密码。  
          检查NT是否给SQL映射了帐号。  
   
  错误信息  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'  
          [Microsoft][ODBC   SQL   Server   Driver][SQL   Server]   Login   failed-   User:   Reason:  
          Not   defined   as   a   valid   user   of   a   trusted   SQL   Server   connection.    
  原因:  
          原因同上。  
          试试这个办法:在SQL   Server的Enterprise   Manager中,选择Server/SQL   Server/Configure[ASCII  
          133]/Security   Options/Standard.  
          如果是运行在IIS4中,取消选择该项目的Password   Synchronization选项。  
   
  错误信息  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'  
          [Microsoft][ODBC   Microsoft   Access   97   Driver]   Couldn't   lock   file.    
  原因:  
          也许是没有正确的权限生成Access数据库的锁定文件(.ldb)  
          默认时,该文件和你的数据库是同一个目录的。  
          给匿名帐号全权访问数据库共享目录的权限。  
   
          有时是因为文件是因为共享时有意使用了只读的权限限制。试试使用下面的代码。  
                  Set   Conn   =   Server.CreateObject("ADODB.Connection")  
                  Conn.Mode   =   adModeShareDenyWrite         '8  
   
  错误信息  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'  
          [Microsoft][ODBC   Microsoft   Access   97   Driver]   '(unknown)'   isn't   a   valid  
          path.   Make   sure   that   the   path   name   is   spelled   correctly   and   that   you   are  
          connected   to   the   server   on   which   the   file   resides.    
  原因:  
          路径非法。最可能发生在当Global.asa和CoonecntString被使用到另外一台机器上的时候。  
   
  错误信息  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'  
          [Microsoft][ODBC   SQL   Server   Driver][SQL   Server]   The   query   and   the   views   in  
          it   exceed   the   limit   of   16   tables.    
   
  原因:  
          查询太复杂了,对查询有限制。  
   
  错误信息:  
          Microsoft   OLE   DB   Provider   for   ODBC   Drivers   error   '80004005'  
          [Microsoft][ODBC   SQL   Server   Driver][DBMSSOCN]   General   network   error.   Check  
          your   network   document    
  原因:  
          当装有SQL   Server的机器改名的时候。但是DSN还使用了原来的机器名。  
  Top

19 楼kisswind(让心情去流浪)回复于 2002-04-24 13:33:38 得分 0

问题我已经解决,原来是在WINDOWS2000下对IIS权限操作的问题,多谢各位的回答,谢谢!在这里,特别感谢BrightEye的帮助!谢谢你们!Top

相关问题

  • 数据库记录删除
  • 在ASP中,删除数据库记录问题!在线等。
  • 删除数据库记录问题
  • 删除文本数据库记录
  • 删除数据库中记录问题???????
  • 通过ASP程序删除ACCESS数据库中某个表的所有记录应该怎么删除啊?
  • asp数据库删除问题!!!
  • 求助,急~~ASP连接ACCESS数据库后,能查询但不能添加,修改,删除记录
  • 如何删除数据库中记录相同的记录,
  • asp网页中文件删除问题(删除数据库中的记录和服务器目录下的文件)

关键词

  • win95
  • windows2000
  • 数据库

得分解答快速导航

  • 帖主:kisswind
  • wangfei2428
  • CodeDuDu
  • ChinaOk
  • scgqq
  • setfocus
  • abigfrog
  • BrightEye

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo