免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1598 | 回复: 3
打印 上一主题 下一主题

求助:关于动态SQL语句的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-11 14:18 |只看该作者 |倒序浏览
我想在程序里使用动态SQL语句实现一种查询,要求在PREPARE定义的时候,sql语句中的WHERE条件可以包含多个变量,并且变量数是不定的,如何实现。是使用using语句还是有别的办法。

论坛徽章:
0
2 [报告]
发表于 2006-08-11 15:13 |只看该作者
可以结合数组来做

论坛徽章:
0
3 [报告]
发表于 2006-08-11 15:17 |只看该作者
EXSR   SLTSTMTSR1;                                                   
0339.00 C/EXEC SQL                    
0340.00 C+ PREPARE S1 FROM :SLTSTMT   
0341.00 C/END-EXEC      
0472.00    BEGSR SLTSTMTSR1;                                                
0473.00      CLEAR SLTSTR1;                                                  
0474.00      IF PEMN@@<>0 OR ASTNO@@<>' ' OR XZ@@<>' ';                     
0475.00        SLTSTMT1='SELECT RRN(AC0,ASTNO,A8QTY,MUMSR,A8AMT,A8RPD,' +  
0476.00                'ASTNM,FPREM,A8LOC,A8BC2 FROM AC08 WHERE ' +         
0477.00         ' A8ID1<>''A''';                                             
0478.00      ENDIF;                                                         
0479.00      IF PEMN@@<>0;                                                   
0480.00         SLTSTR1(1)='FPREM='+PEMN@C;                                 
0481.00      ENDIF;                                                         
0482.00      IF XZ@@<>' ';                                                   
0483.00         SLTSTR1(2)='A8BC2 <>'' ''';                                 
0484.00      ENDIF;                                                         
0485.00      IF ASTNO@@<>' ';                                                
0486.00         SLTSTR1(4)='ASTNO='''+ASTNO@@+'''';                          
0487.00      ENDIF;                                                         
                 
                FOR SLTSTRIDX1=1 TO SLTSTRNO1 BY 1;                           
                 IF SLTSTR1(SLTSTRIDX1)<>' ';                              
                   SLTSTMT1=%TRIM(SLTSTMT1)+' AND '+SLTSTR1(SLTSTRIDX1);   
                 ENDIF;                                                     
               ENDFOR;

论坛徽章:
0
4 [报告]
发表于 2006-08-11 15:18 |只看该作者
剪了一些代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP