Solo añadir que además de utilizar la sentencia en un cursor, también puedes ejecutarla (para deletes, updates, inserts, create table as... ):

c/Exec Sql Prepare prep1 From :SqlPrepare
c/End-exec                                
c/Exec Sql execute Prep1    
c/End-Exec     

Saludos.

Fernando Pérez 

Cerámica Saloni. Dpto. Auditoría y Organización



[EMAIL PROTECTED] escribió:

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
begin:vcard
fn;quoted-printable:Fernando P=C3=A9rez
n;quoted-printable:P=C3=A9rez;Fernando
org;quoted-printable:;Auditor=C3=ADa y Organizaci=C3=B3n
email;internet:[EMAIL PROTECTED]
tel;work:Ext. 627
x-mozilla-html:TRUE
version:2.1
end:vcard

__________________________________________________
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