起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 485|回复: 19

【结贴】业务参数赋值

[复制链接]
发表于 2009-8-19 11:42:17 | 显示全部楼层 |阅读模式
动态修改字段查找引用属性的SQL语句:
select * from a where b in (业务参数);
给业务参数赋值,参数.value:='a';查找引用属性有值,但是参数.value:='a,b,c'; 这样去执行的话,查找引用属性的值是空的,过滤没有效果;
给业务参数赋值后,参数值是怎么拼到执行的SQL语句中的?
回复

使用道具 举报

发表于 2009-8-19 11:49:23 | 显示全部楼层
哦,楼主,不能这样用参数的。
select * from a where b in (业务参数);在这里的参数是被作为一个值使用的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 11:58:28 | 显示全部楼层
我把一个字符串赋值给业务参数不行么?
回复 支持 反对

使用道具 举报

发表于 2009-8-19 14:42:36 | 显示全部楼层
不要在sql语句中直接使用参数
把参数的值赋给字符串,看看字符串的内容是什么?然后用取到的字符串去拼你的sql语句
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 15:38:38 | 显示全部楼层
字段使用查找引用属性,查找数据集使用参数作为过滤条件【 select * from a where b in (业务参数);】,通过条件给参数赋值,参数.value:='a';查找引用属性有值,但是参数.value:='a,b,c'; 这样去执行的话,查找引用属性的值是空的,过滤没有效果;
代码:
设置参数值: TParamUtils.SetParamValue(Context,'Biz:\RZZLGLXT\GGYWCSZ.PARAMGROUP\FMatCodeGather.Param',str1);
取参数值:str1 := TParamUtils.GetParamValueStr(Context,'Biz:\RZZLGLXT\GGYWCSZ.PARAMGROUP\FMatCodeGather.Param');
    TSQLDataSet(DataSetMain).GetLookupData('FMatType').Refresh;
    TSQLDataSet(DataSetMain).LayoutChange;
回复 支持 反对

使用道具 举报

发表于 2009-8-19 15:46:56 | 显示全部楼层
procedure TMainForm.Button2Click(Sender: TObject);
var s :string;
begin
  s:='''a'',''b''';
  TSQLDataSet(DataSetBroker1.DataSet).close;
  TSQLDataSet(DataSetBroker1.DataSet).SQL.Text :='select * from sjb2   WHERE ZD1 in ('+s+')';
  TSQLDataSet(DataSetBroker1.DataSet).open;
end;
想办法把取出来的参数值设置成字符串S的那种格式,每个字符两边都有2个单引号。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 16:03:03 | 显示全部楼层
没啥效果:

aa.jpg

64.15 KB, 下载次数: 227

回复 支持 反对

使用道具 举报

发表于 2009-8-19 16:08:15 | 显示全部楼层
哥们引号搞多了吧,看看我的那个S
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-8-19 16:19:37 | 显示全部楼层
呵呵,str1 := '''12.01'',''12.02'',''12.03'',''12.06''';改成这样也是不行,没有效果;
回复 支持 反对

使用道具 举报

发表于 2009-8-19 16:25:35 | 显示全部楼层
”没有效果“是说查找数据没有变吗?

您先用个标准数据集试一下,确认过滤没有问题后,再在查找数据集上设置。

查找属性修改后,需要重新打开当前的业务数据集的。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-17 20:46 , Processed in 0.045161 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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