Tienes que usar SQL dinámico. Ahora mismo no me acuerdo de mucho, tendría
que mirarlo.

Échate un vistazo en un manual a la instrucción SQL PREPARE. Te tendría que
guiar a como se hace lo que quieres.

Si no te aclaras puedo intentar buscar algo de lo que tengo hecho para ver
si te ayuda un poco más.

 

Gustavo Adolfo Márquez Álvarez.

Departamento de Informática.

[EMAIL PROTECTED]

 

InforZitro, S. L.

Carretera de Níjar 404.

04007 Almería (España).

Teléfono:    950 226 658.

Extensión:              148.

Fax:          950 223 620.

-----Mensaje original-----
De: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] En nombre de Jose Bermúdez
Enviado el: viernes, 14 de septiembre de 2007 11:50
Para: 'forum.help400'
Asunto: SQL en RPG

 

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

Responder a