query最多可以代多少个参数
我现写了个很复杂的sql需要传参数,大约需要300个参数。
可是在250个后就出错了是不是到极限了。是指Parameters这种参数
而且参数可以分为两类,每类都是一个值,可不可以只传两个。
ex:
select 'aa' as 所属部门,
(select '一类' from mml where mmlnum='2' ) as 类别 ,
(select count(*) from mml where EstDtm >= to_date(:KSRQ1,'yyyy-mm-dd') and EstDtm<=to_date(:JSRQ1,'yyyy-mm-dd') and erkkom='aa' and erkart='一类')as cc,
(select count(*) from mml where EstDtm >= to_date(:KSRQ2,'yyyy-mm-dd') and EstDtm<=to_date(:JSRQ2,'yyyy-mm-dd') and erkkom='aa' and erkart='一类' and mmlsta=8 )as cc
from mml where mmlnum='2'
union all
select 'bb' as 所属部门,
(select '二类' from mml where mmlnum='2' ) as 类别 ,
(select count(*) from mml where EstDtm >= to_date(:KSRQ101,'yyyy-mm-dd') and EstDtm<=to_date(:JSRQ101,'yyyy-mm-dd') and erkkom='bb' and erkart='二类')as dd
(select count(*) from mml where EstDtm >= to_date(:KSRQ110,'yyyy-mm-dd') and EstDtm<=to_date(:JSRQ110,'yyyy-mm-dd') and erkkom='热工室' and erkart='二类' and mmlsta=9 )as 作废
from mml where mmlnum='2'
union all
....
还很多
其中KSRQ1=KSRQ2=KSRQ101=KSRQ110=...KSRQ300
JSRQ0=JSRQ2=JSRQ101=JSRQ110=...JSRQ300
有什么好办法吗?
急,高手请解答QQ:15541577,注明delphi我加好友
问题点数:0、回复次数:14Top
1 楼pazee(耙子)(今年过年不收礼,收礼只收尿不湿)回复于 2003-11-03 13:07:27 得分 0
可能只有支持255个左右!
能用到300个参数,说明你的设计有问题,需要修改了。Top
2 楼cultureright(文)回复于 2003-11-03 13:14:30 得分 0
写这么长还不如拆成几个SQL语句,可以用临时表。
太长了不好调试,也不易维护Top
3 楼pchaos(无言,独上西楼)回复于 2003-11-03 13:27:58 得分 0
数据结构不对吧?
改改结构吧Top
4 楼delphi_xizhousheng(西周生)回复于 2003-11-03 14:42:07 得分 0
没有试过Top
5 楼delphiseabird(沙鸥)回复于 2003-11-03 17:58:06 得分 0
不知道,用不了那么多
太多了就是你的设计有问题了Top
6 楼qianguob(不懂编程)回复于 2003-11-03 18:02:39 得分 0
应该是255吧。
可以考虑重新写了。Top
7 楼dulei115(前途无亮)回复于 2003-11-03 18:21:29 得分 0
不知道,没用过那么多!
Top
8 楼whitetiger8(键盘未敲坏,基本功未练成)回复于 2003-11-03 18:44:10 得分 0
没试过,一般来说是不会超的Top
9 楼dulei115(前途无亮)回复于 2003-11-03 19:12:15 得分 0
如果KSRQ1=KSRQ2=KSRQ101=KSRQ110=...KSRQ300
JSRQ0=JSRQ2=JSRQ101=JSRQ110=...JSRQ300
应该可以用一个KSRQ代替KSRQ1,KSRQ2,KSRQ101,KSRQ110,...KSRQ300
用Parameters.ParamByName('KSRQ').Value := ...;赋值
Top
10 楼47522341(睡到8:30)回复于 2003-11-03 19:15:51 得分 0
换种思路吧;
呵呵;
出了错你找都找不到;300个;夸张了点;Top
11 楼dulei115(前途无亮)回复于 2003-11-03 19:18:09 得分 0
对不起,刚试了一下不行。Top
12 楼ma7ht(飞天马)回复于 2003-11-03 20:05:32 得分 0
300个(倒吸一口凉气)
我想睡觉!Top
13 楼donny2000(阿峰)回复于 2003-11-03 20:51:15 得分 0
修改你得设计方案吧Top
14 楼yudehui(静动风云)回复于 2003-11-04 08:14:40 得分 0
这么多?
没有试过!Top




