首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 求救,asp sql查询出错问题,[Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: '17' 附近有语法错误。/newchaxun.asp, 第 227 行 [已结贴,结贴人:tianabc_988]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 18:24:12 楼主
    错误类型:
    Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
    [Microsoft][ODBC SQL Server Driver][SQL Server]第 1 行: '17' 附近有语法错误。
    /newchaxun.asp, 第 227 行

    sql_lichen="if  exists(select  *  from  sysobjects  where  name ='zonglichen') drop  table  zonglichen  create table zonglichen(TeamNo  varchar(10),veh_no varchar(10), zhongmile int ,kongmile int, allmile int ) insert into zonglichen  select vehicle.v_teamno as 车队,vehicle.v_no as 车牌号,(select max(dyndata.wl_loadmile)-min(dyndata.wl_loadmile) from dyndata  where dyndata.time >="&session("start_time")&"  and dyndata.time <="&session("end_time")&" and vehicle.v_deviceid=dyndata.deviceid  and dyndata.wl_loadmile >0  group by vehicle.v_no,vehicle.v_teamno,vehicle.V_Deviceid) as 重车里程 ,(select  max(dyndata.wl_emptymile)-min(dyndata.wl_emptymile)  from dyndata  where dyndata.time >="&session("start_time")&"  and dyndata.time <="&session("end_time")&"  and vehicle.v_deviceid=dyndata.deviceid  and dyndata.wl_emptymile >0  group by vehicle.v_no,vehicle.v_teamno,vehicle.V_Deviceid) as 空车里程 from vehicle,dyndata where dyndata.time >="&session("start_time")&"  and dyndata.time <="&session("end_time")&" and  vehicle.v_deviceid=dyndata.deviceid and vehicle.v_teamno like '%"&session("v_teamno")&"%' and vehicle.v_no like '%"&session("v_no")&"%' group by vehicle.v_no,vehicle.v_teamno,vehicle.V_Deviceid update zonglichen  set allmile =zhongmile+kongmile  select Teamno as 车队名, veh_no as 车牌号, zhongmile as 重车里程,kongmile as 空车里程,allmile as 总里程 from zonglichen "


    求救,我检查拉好久,就是检查不出语法错误,能帮我检查检查吗,谢谢
    100  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 19:15:031楼 得分:50
    这么长的一句?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 19:22:212楼 得分:0
    汗!

    你把你这句话response.write sql_lichen输出
    然后复制到查询分析器里执行一下,你就知道错误了
    好几个错误
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 19:25:143楼 得分:20
    打印出来再看啊。里面有些变量可能没值。
    另外,多个语句(create,insert....)写在一起,之间要加;号啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 19:29:294楼 得分:0
    呵呵,他的错误稍微测试了下有好几处,具体的错误就看他打印出来的,虽然我测试时是用了自己写的代替了他的变量,还是错误那几处
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • songpengasp
    • 等级:
    发表于:2008-05-03 19:40:385楼 得分:20
    drop  table 

    create table

    为什么不分开执行 或者使用存储过程
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 20:48:476楼 得分:0
    谢谢拉,我检查出来拉.  "&session("start_time")&" 应改为 '"&session("end_time")&"'
    "&session("end_time")&"  也一样是同样的错误.
    以上的SQL语句我在查询分析器中没有出错.可以正常运行的,但是我换成sql字符串是就发生了错误,呵呵粗心啊
    还有个问题想请教各位大师一下
    我给ASP代码给你们看一下:有错误发生,查拉好久也没查出来,说是记录集的问题.
    ceshi.asp 这个ASP代码网页如下:


    <%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
    <!--#include file="newconn.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>
    </head>

    <body>
    <%
    sql_lichen="if  exists(select  *  from  sysobjects  where  name ='zonglichen') drop  table  zonglichen  create table zonglichen(TeamNo  varchar(10),veh_no varchar(10), zhongmile int ,kongmile int, allmile int ) insert into zonglichen  select vehicle.v_teamno as 车队,vehicle.v_no as 车牌号,(select max(dyndata.wl_loadmile)-min(dyndata.wl_loadmile) from dyndata  where dyndata.time >='"&session("start_time")&"' and dyndata.time <='"&session("end_time")&"' and vehicle.v_deviceid=dyndata.deviceid  and dyndata.wl_loadmile >0  group by vehicle.v_no,vehicle.v_teamno,vehicle.V_Deviceid) as 重车里程 ,(select  max(dyndata.wl_emptymile)-min(dyndata.wl_emptymile)  from dyndata  where dyndata.time >='"&session("start_time")&"' and dyndata.time <='"&session("end_time")&"' and vehicle.v_deviceid=dyndata.deviceid  and dyndata.wl_emptymile >0  group by vehicle.v_no,vehicle.v_teamno,vehicle.V_Deviceid) as 空车里程 from vehicle,dyndata where dyndata.time >='"&session("start_time")&"' and dyndata.time <='"&session("end_time")&"' and vehicle.v_deviceid=dyndata.deviceid and vehicle.v_teamno like '%"&session("v_teamno")&"%' and vehicle.v_no like '%"&session("v_no")&"%' group by vehicle.v_no,vehicle.v_teamno,vehicle.V_Deviceid update zonglichen  set allmile =zhongmile+kongmile  select Teamno as 车队名, veh_no as 车牌号, zhongmile as 重车里程,kongmile as 空车里程,allmile as 总里程 from zonglichen "
    %>
    <%
    response.write " <hr align=center>以下为返回的查询结果:"
    set rs=server.CreateObject("ADODB.RECORDSET")
    rs.open sql_lichen,conn ,3,3
    response.write " <table border=1>" & vbcrlf
    response.write " <tr style=""font-size:9pt;color:black"">"
    for i=1 to rs.fields.count
    response.write " <td style=""font-size:9pt;color:black"">"& rs.fields(i-1).name &" </td>"
    next
    response.write " </tr>"
    do while not rs.eof
    response.write " <tr onmouseover=""this.style.background='#ccffcc';this.style.cursor='hand';"" onmouseout=""this.style.background=body.style.background;"">" & vbcrlf
    for j=1 to rs.fields.count
    response.write " <td style=""font-size:9pt;color:black"">"& rs.fields(j-1) &" </td>"
    next
    response.write " </tr>" & vbcrlf
    rs.movenext
    loop
    response.write " </table>"
    %>
    </body>
    </html>
    运行这个个ASP代码时,发生拉如下错误信息
    错误类型:
    ADODB.Recordset (0x800A0E78)
    对象关闭时,不允许操作。
    /TMPms6eyam5h.asp, 第 30 行

    查拉好久都没查出来,望帮我看看,先谢谢拉

    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 21:25:117楼 得分:0
    30行时哪行?

    对象关闭时,不允许操作
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 21:40:388楼 得分:0

    do while not rs.eof
    就这行
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 21:42:199楼 得分:0
    在这行出错
    错出在哪啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 21:42:3110楼 得分:0
    do while not rs.eof
    你这行就只有一个对象!
    仔细检查下吧
    这个错误太明显了:对象关闭时,不允许操作
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 21:44:0911楼 得分:0
    for i=1 to rs.fields.count
    为何要用这个?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 21:49:0512楼 得分:0
    打印出字段名
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 21:51:2113楼 得分:0
    能帮改错误吗
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 21:57:3714楼 得分:0
    for i=1 to rs.fields.count  刚才写错拉
    是打出字段内容.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 22:19:0515楼 得分:0
    for i=1 to rs.fields.count
    response.write " <td style=""font-size:9pt;color:black"">"& rs.fields(i-1).name &" </td>"
    next
    response.write " </tr>"
    你不要这个会出现对象关闭码?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 22:40:3916楼 得分:0
    还是一样哦
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 22:53:5917楼 得分:0
    实在看不出你给你的这段代码中有什么对象是已经关闭了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-03 23:01:0018楼 得分:0
    是啊,不知道出错在哪啊
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-04 10:15:4619楼 得分:10
    对象已经关闭,do while not rs.eof这句之前rs.close关闭set rs=server.createobject("ADODB.Recordset")
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved