起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 1438|回复: 16

【搞定】业务参数问题请教**

[复制链接]
发表于 2006-12-28 14:12:30 | 显示全部楼层 |阅读模式
lParam.Value:='''2006100437'''+','+'''2006100445''';
采用上面的语句给业务参数赋值时,为什么在SQL事件探查器内看到的传入值为:''2006100437'',''2006100445''而不是'2006100437','2006100445'?
正确的语句该如何?
回复

使用道具 举报

发表于 2006-12-28 14:54:41 | 显示全部楼层
楼主,请尝试:
lParam.Value:=SysUtils.QuotedStr('2006100437')+','+SysUtils.QuotedStr('2006100445');

NameSpace: Business.System    ClassDelcare: Business.System.SysUtils
--------------------------------------------------------------------------------
static function QuotedStr(S: string): string;

或者
声明一个临时变量s
s:=SysUtils.QuotedStr('2006100437')+','+SysUtils.QuotedStr('2006100445');
lParam.Value:=s;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-28 15:13:51 | 显示全部楼层
问题还是一样的,查看到的结果为:'''2006100437'',''2006100445'''
我希望的为:''2006100437','2006100445''
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-28 16:38:50 | 显示全部楼层
斑竹该如何解决?
回复 支持 反对

使用道具 举报

发表于 2006-12-29 14:11:14 | 显示全部楼层
楼主,你上面的问题可以把单引号换成双引号来解决。

另外,你是否是把参数加在sql条件的In子句中的,如果是这样,用一个参数是实现不了的。
因为最终一个参数传递到In后就变成了一个字符串'"20060211","20060524'这样是过滤不到数据的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-29 14:14:37 | 显示全部楼层
请问该如何处理该问题?我又不能确定用户会有多少输入条件
回复 支持 反对

使用道具 举报

发表于 2006-12-29 14:35:48 | 显示全部楼层
那你只能去拼写sql语句的Where部分了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-12-29 14:52:40 | 显示全部楼层
请问1、一个标准数据集的SQL语句如何传入;
    2、决策数据集中设计SQL中的SQL语句如何传入。
谢谢,请帮忙
回复 支持 反对

使用道具 举报

发表于 2006-12-29 15:02:53 | 显示全部楼层
楼主,你不需要修改全部的sql语句。
标准数据集和决策数据集都有SqlFilter和SqlFiltered属性。
你只需要把sql的条件部分赋值就可以了:
SqlFilter := 'ABC IN ("20061235", "20076589")'
sqlFiltered := True;
回复 支持 反对

使用道具 举报

发表于 2006-12-30 14:50:25 | 显示全部楼层
楼主,搞定没有?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-3 15:27 , Processed in 0.038301 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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