查看: 13880|回复: 8

关于自定义查询传参问题

升级   3.21%

19

主题

24

回帖

321

积分

注册会员

Rank: 2

积分
321
发表于 2022-11-29 09:30:53 | 显示全部楼层 |阅读模式
UPDATE htinfo o SET o.ht_id = :ht_id , o.subject = :set_list WHERE o.org = 'xxx'


请问,能否做到,划线部分,整体通过参数传递?


var set_data = {
"name" : "newStatement3", //(String)必选,查询配置的名称、别名或ID
"mode" : "data"
}
var promise = this.statement.execute(set_data);
promise.then(function(data){
console.log(data)
    //data 为返回的数据。
})

然后,除了用这个方式调用查询,有没有别的借口可以直接根据查询名称调用?



回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2022-11-29 09:56:25 | 显示全部楼层
目前没有提供查询配置的update,您这是要修改自建表数据吗,有自建表的相关方法和接口去增删改查的
回复

使用道具 举报

升级   3.21%

19

主题

24

回帖

321

积分

注册会员

Rank: 2

积分
321
发表于 2022-11-29 10:33:54 | 显示全部楼层
论坛管理员 发表于 2022-11-29 09:56
目前没有提供查询配置的update,您这是要修改自建表数据吗,有自建表的相关方法和接口去增删改查的 ...

这是批量修改的,如果用接口,会很大工作量,本来一条update可以解决的,用接口的话,要写forEach,还要不停的更新。

或者可以换个提问方式:
有没有接口,可以直接执行一段文本形式的查询语句
例如:

"UPDATE htinfo o SET o.ht_id = 'xxx' , o.subject = 'xxx' WHERE o.org = 'xxx'"
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2022-11-29 15:58:22 | 显示全部楼层
目前没有提供update的jpql语句修改数据库表
回复

使用道具 举报

升级   3.21%

19

主题

24

回帖

321

积分

注册会员

Rank: 2

积分
321
发表于 2022-11-30 11:16:22 | 显示全部楼层
论坛管理员 发表于 2022-11-29 15:58
目前没有提供update的jpql语句修改数据库表

https://www.o2oa.net/cms/datacenter/177.html

请问您在其他帖子中提到的,通过脚本创建语句,有接口可以传参吗?
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2022-12-1 09:46:47 | 显示全部楼层
c1644470 发表于 2022-11-30 11:16
https://www.o2oa.net/cms/datacenter/177.html

请问您在其他帖子中提到的,通过脚本创建语句,有接口可 ...

脚本创建语句可以传参,但是也不能update
回复

使用道具 举报

升级   3.21%

19

主题

24

回帖

321

积分

注册会员

Rank: 2

积分
321
发表于 2022-12-1 09:55:15 | 显示全部楼层
本帖最后由 c1644470 于 2022-12-1 09:57 编辑
论坛管理员 发表于 2022-12-1 09:46
脚本创建语句可以传参,但是也不能update

这个我已经测试过了,也是可以的,现在代码改成

var tmp_text
var set_list
var org
var sql ="UPDATE htinfo o SET o.ht_id = '"+tmp_text+"' , o.subject = '"+set_list+"' WHERE o.org = '"+org+"'"
return sql;


{
    "ht_name" : "ht_id11",
    "ht_id" : "test_id'11",
    "set_list" : "testlist",
    "org" : "何富祥"
}


在查询设计页面运行,已经是有效了

请问我要调用这个查询,查询名称是”合同审核完毕“,应用名称是”合同管理“,具体要用哪个语句调用,并把上面的几个参数传过去
回复

使用道具 举报

升级   100%

139

主题

1万

回帖

4万

积分

超级版主

Rank: 8Rank: 8

积分
41458
发表于 2022-12-1 16:24:45 | 显示全部楼层


参考一下api

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

升级   3.21%

19

主题

24

回帖

321

积分

注册会员

Rank: 2

积分
321
发表于 2022-12-5 12:37:33 | 显示全部楼层

谢谢,已解决,放上代码分享一下

//调用脚本
this.statement.execute({
"name": "ht_updata",
"mode" : "data",
"parameter" : {
    "ht_name" : "表名", //表名
    "ht_serial" : "合同序列号", //合同序列号
    "name_list" : "", //列名列表,多个时为数组
    "data_list" : "" //数据列表,多个时为数组
  }
}, function(json){});

//查询代码

var ht_name = parameters.ht_name
var ht_serial = parameters.ht_serial
var name_list = parameters.name_list
var data_list = parameters.data_list

if(typeOf(name_list) == "string" && typeOf(data_list) == "string"){
    set_data = "o." + name_list + " = '" + data_list + "'"
    }else if(typeOf(name_list) === "array" && typeOf(data_list) === "array" && name_list.length == data_list.length){
    set_data = "o." + name_list[0] + " = '" + data_list[0] + "'"
    for(k=1;k<name_list.length;k++){
        tmp_data = ",o." + name_list[k] + " = '" + data_list[k] + "'"
        set_data = set_data + tmp_data
    }
   
}else{
    return
}
    return "UPDATE " + ht_name + " o SET " + set_data + " WHERE o.ht_serial = '"+ ht_serial +"'")
回复

使用道具 举报

发表回复

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

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表
viewthread