找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 130|回复: 9

关于ASP中批量删除问题,拜托各位大哥帮个忙····

[复制链接]
发表于 2010-1-11 04:57:00 | 显示全部楼层 |阅读模式 IP:江苏扬州
我用如下的删除语句来批量删除从前台传递过来的几个记录,其中,“name”变量是前台传递过来的一组记录,“xibie”变量用于选择数据库中不同的数据表。


<%
id = request.form("name")
xibie=session("id")
<%
idArr = split(id,",")
for i=0 to ubound(idArr)
%>

<%sql = "delete from " & xibie & " where 学号= '" & trim(idArr(i)) &"'"
conn.execute(sql)
next
Response.Redirect("shanchu.asp")
%>
执行这个文件后,出现如下错误:


错误类型:
Microsoft JET Database Engine (0x80040E14)
FROM 子句语法错误。
/myasp/lianxi/shanchu.asp, 第 51 行

其中shanchu.asp的第51行附近内容为:
49 set rs=server.createobject("adodb.recordset")
50 sql="select * from " &xibie
51 rs.open sql,conn,1,3
52 do while not rs.eof

是用于打开一个数据库的表,然后列出所有记录,以用来发送到删除页面的。

每次在本机测试删除时都会出现这样的错误提示,可是点击刷新后会发现记录已经正常删除了。但传到服务器后就出现“内部服务器错误:500···”,这样就没法在服务器上进行正常删除。请问各位这是怎么回事?怎么解决这个问题?
注:“xibie”变量是中文变量。
发表于 2010-1-11 04:57:04 | 显示全部楼层 IP:江苏扬州
讲讲一般的调试知识。


/myasp/lianxi/shanchu.asp, 第 51 行

其中shanchu.asp的第51行附近内容为:
49 set rs=server.createobject("adodb.recordset")  
50 sql="select * from " &xibie  
51 rs.open sql,conn,1,3
52 do while not rs.eof

51行出错,问题绝对不会在52行上,所以52行不要看。
具体下来,51行出错,我们注意到51行本身也没什么内容,而报错报的是SQL语句问题,所以问题出在50行上。
50行定义的SQL语句是个最简单的Select语句了,而这里居然会出错,我们要去看看xibie这个变量是不是没取到值,或者取到的不是表名。(还有一种情况,xibie字符串确实包含了表名,但不晓得在哪个步骤比如提交表单上把不可见的字符也给包含进去了)

至于单引号,这里不涉及的。
回复

使用道具 举报

发表于 2010-1-11 04:57:08 | 显示全部楼层 IP:江苏扬州
刚学
不过我前面置顶里有说过,文本型和时间型的变量都是要加单引的
只有数字型的才可以写成sql="select * from "&xibie


跟这个有关系吗?
回复

使用道具 举报

发表于 2010-1-11 04:57:12 | 显示全部楼层 IP:江苏扬州
回复 2楼 mgmt_asp

里面的确是是中文,但我原来这种也可以正常查询啊···
回复

使用道具 举报

发表于 2010-1-11 04:57:16 | 显示全部楼层 IP:江苏扬州
回复 3楼 aspic

可是这样写了之后系统提示:

错误类型:
Microsoft VBScript 编译器错误 (0x800A0401)
语句未结束
/myasp/lianxi/shanchu.asp, line 54, column 29
sql="select * from '" &xibie "'"
----------------------------^


是不是我哪里输错了呢?
回复

使用道具 举报

发表于 2010-1-11 04:57:20 | 显示全部楼层 IP:江苏扬州
学号是数字型的?还有就是表名、字段名、变量名等不要使用中文,只有在错误提示或正确提示时才能使用中文。
回复

使用道具 举报

发表于 2010-1-11 04:57:24 | 显示全部楼层 IP:江苏扬州
确实是变量值问题,因为这个系统的变量值来自session变量,所以当删除操作完成之后,直接进入那个页面,xibie变量取不到正确的值,因此报错了。
回复

使用道具 举报

发表于 2010-1-11 04:57:28 | 显示全部楼层 IP:江苏扬州
批量删除使用in关键字。。
delete from " & xibie & " where in 学号 ('" & trim(idArr(i)) &"'" )
回复

使用道具 举报

发表于 2010-1-11 04:57:32 | 显示全部楼层 IP:江苏扬州
xibie=session("id")
这个的值是中文?
中文就要写成
sql="select * from '"&xibie&"'"
回复

使用道具 举报

发表于 2010-1-11 04:57:36 | 显示全部楼层 IP:江苏扬州
使用in关键字
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 13:18 , Processed in 0.223596 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表