起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 8655|回复: 10

[结贴] 执行KSQL出错

[复制链接]

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
发表于 2014-10-27 10:09:51 | 显示全部楼层 |阅读模式
版本: 小版本号:
数据库: 服务器操作系统: 应用服务器:
客户端操作系统: 浏览器:
我在js中写了一个action:
mainActivity.trigger4Click = function(event){
        justep.Request.sendBizRequest2({
    dataType: "application/json",
    action: "clearAction",
   // parameters : param,
    callback: function(result) {
        if (result.state) {
            alert("调用成功!");
        } else {
            throw new Error("调用失败!|" + result.response.message);
        }
    }
});
};

然后调用clearAction:
public static int clear(){
                String ksql = "delete from SA_Task";
                System.out.println("ksql:" + ksql);
                return KSQL.executeUpdate(ksql, null, "/LandManagerSys/LandInfoMgr/data", null);
        }



报错信息:
Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150210; 提示: 执行KSQL出错, KSQL: delete from SA_Task
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlDelete(Unknown Source)
        at com.justep.system.data.impl.TableUtilsImplement.ksqlExecuteUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at com.justep.system.data.KSQL.executeUpdate(Unknown Source)
        at LandInfoMgr.clear(LandInfoMgr.java:196)
        ... 26 more
Caused by: com.justep.exception.KSQLException: 编码: JUSTEP154115; 提示: KSQL语法错误, te from SA_Task^^中未找到需要的元素, 位置19期望是<Identifier>
        at com.justep.exception.KSQLException.create(Unknown Source)
        at com.justep.system.ksql.token.TokenManager.matchToken(Unknown Source)
        at com.justep.system.ksql.token.TokenManager.match(Unknown Source)
        at com.justep.system.ksql.parser.AbstractParser.modifyConceptNode(Unknown Source)
        at com.justep.system.ksql.parser.DeleteParser.start(Unknown Source)
        at com.justep.system.ksql.parser.AbstractParser.parse(Unknown Source)
        ... 32 more



请各位大神帮忙看看  谢谢

310

主题

4938

帖子

4767

积分

论坛元老

Rank: 8Rank: 8

积分
4767
QQ
发表于 2014-10-27 10:30:21 | 显示全部楼层
本帖最后由 yinlun 于 2014-10-27 10:35 编辑

将/LandManagerSys/LandInfoMgr/data改成/system/data试试
或者
你在SA_Task后面加别名试试,例如
delete from SA_Task SA_Task

评分

参与人数 1 +4 收起 理由
jishuang + 4 赞一个!

查看全部评分

QQ:179785966
回复 支持 反对

使用道具 举报

发表于 2014-10-27 10:49:40 | 显示全部楼层
KSQL 调用需要别名显示。。。加一个别名看看
回复 支持 反对

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-10-27 11:09:14 | 显示全部楼层
yinlun 发表于 2014-10-27 10:30
将/LandManagerSys/LandInfoMgr/data改成/system/data试试
或者
你在SA_Task后面加别名试试,例如

已经OK了,这个是个主表,删除主表的同时还需要删除从表SA_TaskRelation中的数据,请问级联删除?
回复 支持 反对

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-10-27 11:09:37 | 显示全部楼层
忘了忘了 发表于 2014-10-27 10:49
KSQL 调用需要别名显示。。。加一个别名看看

已经OK了,这个是个主表,删除主表的同时还需要删除从表SA_TaskRelation中的数据,请问级联删除?
回复 支持 反对

使用道具 举报

发表于 2014-10-27 11:26:49 | 显示全部楼层
ltt 发表于 2014-10-27 11:09
已经OK了,这个是个主表,删除主表的同时还需要删除从表SA_TaskRelation中的数据,请问级联删除? ...

http://bbs.justep.com/forum.php? ... 9339&highlight=级联删除参考看看
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2014-10-27 13:36:08 | 显示全部楼层
ltt 发表于 2014-10-27 11:09
已经OK了,这个是个主表,删除主表的同时还需要删除从表SA_TaskRelation中的数据,请问级联删除? ...

具体需求要做什么?为什么要删除SA_task中的数据?
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-10-27 13:39:09 | 显示全部楼层
jishuang 发表于 2014-10-27 13:36
具体需求要做什么?为什么要删除SA_task中的数据?

只是要初始化这两个表中数据,主表是概念表,我用ksql清除了,从表是主表的一个关系表,在概念里没有,ksql就用不了了,所以我想知道怎么用SQL来清除啊?
回复 支持 反对

使用道具 举报

91

主题

13万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
35942
发表于 2014-10-27 14:38:06 | 显示全部楼层
sql就是标准的,在x5中调用API执行sql可以参考
/BIZ/demo/db/logic/code/dsrc/Db.java中的SQL参数示例:按单据号获取订单ID
远程的联系方法QQ1392416607,添加好友时,需在备注里注明其论坛名字及ID,公司等信息
发远程时同时也发一下帖子地址,方便了解要解决的问题  WeX5教程  WeX5下载



如按照该方法解决,请及时跟帖,便于版主结贴
回复 支持 反对

使用道具 举报

73

主题

247

帖子

313

积分

中级会员

Rank: 3Rank: 3

积分
313
QQ
 楼主| 发表于 2014-10-27 14:41:40 | 显示全部楼层
jishuang 发表于 2014-10-27 14:38
sql就是标准的,在x5中调用API执行sql可以参考
/BIZ/demo/db/logic/code/dsrc/Db.java中的SQL参数示例:按 ...

我这个从表,没有对应的概念,他只是主表的一个关系表,如图: 1.png

我已经将主表的数据用KSQL清除了,但是这个从表没有对应的概念所以没法用ksql,所以我想用SQL做,求大神指点该怎么写:、
String sql ="delete from SA_TaskRelation";
            Map<String, String> sqlMap = new HashMap<String, String>();

            sqlMap.put(DatabaseProduct.ORACLE.name(),sql);
            SQL.executeUpdate(sqlMap, null, "/system/data");

报错:Caused by: com.justep.exception.BusinessException: 编码: JUSTEP150037; 提示: 没有找到与当前数据库"MSSQL"匹配的SQL语句
        at com.justep.exception.BusinessException.create(Unknown Source)
        at com.justep.util.Utils.check(Unknown Source)
        at com.justep.system.data.SQL.executeUpdate(Unknown Source)
        at com.justep.system.data.SQL.executeUpdate(Unknown Source)
        at LandInfoMgr.clear(LandInfoMgr.java:203)
        ... 26 more

我用的是SqlServer的数据库
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-19 00:59 , Processed in 0.069803 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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