CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  数据库相关

query最多可以代多少个参数

楼主xiaoyuelhs(萧月)2003-11-03 12:52:12 在 Delphi / 数据库相关 提问

我现写了个很复杂的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

相关问题

  • query参数传递
  • query中参数问题
  • ado query 参数的问题
  • select 代入参数!
  • query的params参数的问题。
  • 为什么query参数出错?
  • 如何取得Query的参数
  • Query与SQL的参数传递方式
  • MSG 结构中的参数 lParam wParam 参数代表什么?
  • 后面的参数代表什么3Q

关键词

  • date
  • 参数
  • ksrq
  • yyyy
  • dd
  • mm
  • 需要
  • frommml where
  • and estdtm
  • select

得分解答快速导航

  • 帖主:xiaoyuelhs

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo