Debes usar Sql dinámico. no es demasiado complicado, tienes que crearte 
unas variables de tipo Varying para preparar las Querys y ejecutar el Sql 
prepare. Yo normalmente creo cinco variables Varying que son la SQLSELECT, 
SQLWHERE, SQLORDER, SQLGROUP y SQLPREPARE. Cuando acabo de cargar en 
tiempo de ejecución los valores de la query en sus respectivas variables, 
las muevo todas a la última SQLPREPARE. A partir de ahí poca cosa más, 
exceptuando el ejecutar el Sql prepare algo así ..... 

c/Exec Sql Prepare prep1 From :SqlPrepare
c/End-exec 
c/Exec Sql Declare C1 Cursor For Prep1 
c/End-Exec 

espero te sirva. 

Saludos
Felipe Martínez
[EMAIL PROTECTED]
http://www.tcbcn.com




Jose Bermúdez <[EMAIL PROTECTED]> 
Enviado por: [EMAIL PROTECTED]
14/09/2007 11:50
Por favor, responda a
"forum.help400" <[email protected]>


Para
"'forum.help400'" <[email protected]>
cc

Asunto
SQL en RPG
Categoría:







Es posible montar la cláusula WHERE o ORDER BY de un sql de Manera 
variable. 
Ir construyéndola en función de una pantalla que el usuario va 
seleccionando y ordenando. 
 
Quiero cambiar 
 C/Exec Sql 
 C+ Declare Lector1 Cursor for 
 C+   SELECT * 
 C+   FROM "FICHERO" 
 C+   WHERE(
 C+                 Campo1<=:DESDEP1 and Campo1<= :HASTAP1 
 C+                 Campo2<=:DESDEP2 and Campo2<= :HASTAP2 
 C+  ) ORDER BY Campo1,Campo2 
 C+         For Read Only 
 C/End-Exec 
 
Por algo asi 
 C                     if condicion1 then 
 C                     Eval   Sqlstm='Where(campo1<="' + DESDEP1 + '" and 
Campo1<="' +HASTAP1)
 C                     Eval   OrdStm="ORDER BY(Campo1,Campo2)"
 C                     Else 
 C                     Eval   Sqlstm='Where(campo2<="' + DESDEP2 + '" and 
Campo2<="' +HASTAP2)
 C                     Eval   OrdStm="ORDER BY(Campo2,Campo1)"
 C                     End 
 C/Exec Sql 
 C+ Declare Lector1 Cursor for 
 C+   SELECT * 
 C+   FROM "FICHERO" 
 C+   :Sqlstm 
 C+   :OrdStm    
 C+         For Read Only 
 C/End-Exec 
 
 
 
 
Un Saludo,
 
José Bermúdez
Departamento Informática.
 
Alcoholes Montplet, S.A.
 
 __________________________________________________
Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
&amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400
__________________________________________________
Forum.HELP400 es un servicio m&amp;#225;s de NEWS/400.
&amp;#169; Publicaciones Help400, S.L. - Todos los derechos reservados
http://www.help400.es
_____________________________________________________

Para darte de baja visita la siguente URL:
http://listas.combios.es/mailman/listinfo/forum.help400

Responder a