找回密码
 注册成为天翎用户
查看: 1279|回复: 6

[已解决] 关于queryBySQL查询第三方数据视图时没有返回值的问题

[复制链接]
白沙烟草 发表于 2014-10-15 08:23:46 | 显示全部楼层 |阅读模式
本帖最后由 eason 于 2014-10-23 20:02 编辑

var doc1 = getCurrentDocument();
var childs = doc1.getChilds("TP_Person");
var process = getDocumentProcess();
var formProcess = getFormProcess();
var id = getParentDocument().getId();
var selects=getParameterAsText("_selects");
var sel=selects.replace(";","','");
sel="('"+sel+"')";
println("sel=====" + sel);
var sql = "select '11e4-0bbb-b33b5fbe-b781-99c512ac95aa' as formid,'11e3-e093-e3d52d7d-92cd-a9a775afa6e5' as domainid,zgbhao00 as id,zgbhao00 as item_code,xming000 as item_name,bmmcheng as item_dept_name,bzmcheng as item_team_name,gwmcheng as item_post_name from tlk_v_rltrsdawhxx where zgbhao00 in "+sel+"order by zgbhao00";
var datas = queryBySQL(sql);
println("Select=====" + datas);
if (datas.size() > 0) {        
for (var iter = datas.iterator(); iter.hasNext();) {               
var data = iter.next();
var jobnum = data.getItemValueAsString("zgbhao00");  
var name = data.getItemValueAsString("xming000");
            
var subform = formProcess.doView("11e4-0261-d69834f3-b781-99c512ac95aa");            
var doc = process.doNew(subform,getWebUser(),createParamsTable());                 
doc.addStringItem("jobnum",jobnum);               
doc.addStringItem("name",name);
                           
doc.setParent(id);                 
process.doCreate(doc);               
}
}

这是我在一个视图选择框的确定条件里写的代码,是为了实现将视图选选框里选定的数据插入天翎平台建立的基表。
红色字部分是出现问题的地方:首先,我查询的是一个视图,是通过我们自己的数据库用户里的一个表,在天翎的用户下建立的视图。单独查询这个视图没问题,但是放在这里:var datas = queryBySQL(sql);后没有返回值。我想问一下,是不是这种通过建立视图查询第三方数据的方法不能用于queryBySQL(sql)?
eason 发表于 2014-10-15 13:35:59 | 显示全部楼层
您好,是可以用queryBySQL()方法的,看了一下你上面的代码,可能是你的sql写的有问题,可参考下面这种更改一下试试
var sql = "select '11e4-0bbb-b33b5fbe-b781-99c512ac95aa' as formid,'11e3-e093-e3d52d7d-92cd-a9a775afa6e5' as domainid,'zgbhao00' as id,'zgbhao00' as item_code,'xming000' as item_name,'bmmcheng' as item_dept_name,'bzmcheng' as item_team_name,'gwmcheng' as item_post_name from tlk_v_rltrsdawhxx where 'zgbhao00' in "+sel+" order by item_code";
在sql中,值是需要用单引号引起来的。
回复

使用道具 举报

eason 发表于 2014-10-16 13:49:11 | 显示全部楼层
您好,问题是否已得到解决??
回复

使用道具 举报

 楼主| 白沙烟草 发表于 2014-10-17 15:53:17 | 显示全部楼层
你好,我试过了,还是不行。
回复

使用道具 举报

eason 发表于 2014-10-17 16:20:10 | 显示全部楼层
我这边测试过,是可以用这个方法的,可以得到这个返回值的。前提sql可以在数据库中查出数据。您那边可以将sql打印出来,看看打印出来的sql是什么,并放在数据库客户端上执行以下,看看是否有记录
回复

使用道具 举报

 楼主| 白沙烟草 发表于 2014-10-21 11:57:21 | 显示全部楼层
你好,谢谢,我知道问题在哪里了!
var jobnum = data.getItemValueAsString("code");  
var name = data.getItemValueAsString("name");

上述两句,后面的字段不能用我第三方数据表里的字段,应该用as item_****表示的字段。功能已可已实现。谢谢。可以结贴了。
回复

使用道具 举报

kharry 发表于 2014-10-22 14:15:52 | 显示全部楼层
感谢楼主反馈  该帖结贴
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-14 00:42

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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