| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1229 人关注过本帖
标题:关于ASP中批量删除问题,拜托各位大哥帮个忙····
只看楼主 加入收藏
liuvking
Rank: 2
等 级:论坛游民
帖 子:22
专家分:20
注 册:2009-7-22
结帖率:87.5%
收藏
已结贴  问题点数:20 回复次数:10 
关于ASP中批量删除问题,拜托各位大哥帮个忙····
我用如下的删除语句来批量删除从前台传递过来的几个记录,其中,“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”变量是中文变量。
搜索更多相关主题的帖子: 出现错误 批量删除 
2009-08-11 23:09
mgmt_asp
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:124
专家分:158
注 册:2009-7-26
收藏
得分:0 
刚学
不过我前面置顶里有说过,文本型和时间型的变量都是要加单引的
只有数字型的才可以写成sql="select * from "&xibie


跟这个有关系吗?
2009-08-12 00:12
aspic
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:51
帖 子:2258
专家分:8050
注 册:2008-2-18
收藏
得分:0 
xibie=session("id")
这个的值是中文?
中文就要写成
sql="select * from '"&xibie&"'"
2009-08-12 10:15
liuvking
Rank: 2
等 级:论坛游民
帖 子:22
专家分:20
注 册:2009-7-22
收藏
得分:0 
回复 3楼 aspic

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

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


是不是我哪里输错了呢?

2009-08-12 11:35
liuvking
Rank: 2
等 级:论坛游民
帖 子:22
专家分:20
注 册:2009-7-22
收藏
得分:0 
回复 2楼 mgmt_asp

里面的确是是中文,但我原来这种也可以正常查询啊···
2009-08-12 12:19
yms123
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:209
帖 子:12488
专家分:19042
注 册:2004-7-17
收藏
得分:0 
学号是数字型的?还有就是表名、字段名、变量名等不要使用中文,只有在错误提示或正确提示时才能使用中文。
2009-08-12 14:02
ChinaXtHuLan
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2009-7-29
收藏
得分:0 
批量删除使用in关键字。。
delete from " & xibie & " where in 学号 ('" & trim(idArr(i)) &"'" )
2009-08-13 08:40
wenkekenihao
Rank: 1
等 级:新手上路
帖 子:5
专家分:2
注 册:2009-8-13
收藏
得分:0 
使用in关键字

[url]http://[/url]
2009-08-13 09:44
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:20 
讲讲一般的调试知识。

/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字符串确实包含了表名,但不晓得在哪个步骤比如提交表单上把不可见的字符也给包含进去了)

至于单引号,这里不涉及的。
2009-08-13 10:51
liuvking
Rank: 2
等 级:论坛游民
帖 子:22
专家分:20
注 册:2009-7-22
收藏
得分:0 
确实是变量值问题,因为这个系统的变量值来自session变量,所以当删除操作完成之后,直接进入那个页面,xibie变量取不到正确的值,因此报错了。
2009-08-15 15:24
快速回复:关于ASP中批量删除问题,拜托各位大哥帮个忙····
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018067 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved