Os agradezco vuestras
aportaciones.
Como alguien dijo en su
día en este foro... "el foro sigue muy vivo".
----- Original Message -----
Sent: Monday, October 17, 2005 4:10
PM
Subject: Re: SQL dinámico en programa ILE
RPG
Si en la base de datos es alfanumérico has de añadir las
comillas: SelectTwo = %TRIMR(SelectOne) + '''' + plinea + '''' ('''' son
cuatro comillas simples)
Juan Antonio escribió:
Ya probé lo que me dices, pero sigue sin funcionar, ya que al
realizar el debug el valor queda sustituido por =HML, sin apostrofes (p.ej:
'HML').
Gracias. ----- Original Message ----- From: "alex
martinez" <[EMAIL PROTECTED]> To: <forum.help400@combios.es>
Sent: Monday, October 17, 2005 2:09 PM Subject: Re: SQL dinámico en
programa ILE RPG
Hola:
¿plinea no es un campo de entrada
(definido en una *entry plist? Si es así, para que funcione debes
realizar un Eval similar a este:
Eval SelectTwo = %TRIMR(SelectOne) +
plinea
SAlu2
El 17/10/05, Juan Antonio<[EMAIL PROTECTED]>
escribió:
Gracias, Fernando. Los dos temas están
solucinados, pero desarrollandolo más, me encuentro con el siguiente
problema. El parámetro es para restringir el SQL embebido, de manera
que tan solo me muestre los de esa línea. Realizando el SQL sin esta
restricción funciona, pero si la pongo no selecciona registros,
dándome el SQLCOD = -00000501. Supongo que el problema estará en la
sintaxis. ¿Alguna idea?.
0040.01 D
SelectOne
S
500A INZ('SELECT -
0040.02
D
mnpolf.epor, mnpof.enpor, - 0040.03
D
mnpolf.eporl, mnpolf.estsa - 0040.04
D
FROM mnpolf INNER JOIN mnpof ON - 0040.05
D
mnpolf.epor = mnpof.epor - 0040.06
D
WHERE mnpolf.eline=') 0040.08 D
Select
S
500A INZ('SELECT -
0040.09
D
mnpolf.epor, mnpof.enpor, - 0040.10
D
mnpolf.eporl, mnpolf.estsa - 0040.11
D
FROM mnpolf INNER JOIN mnpof ON - 0040.12
D
mnpolf.epor = mnpof.epor - 0040.14
D
ORDER BY')
0044.01 D
OrderBy
S
20A INZ('mnpolf.epor') 0044.02 D
Where
S
20A INZ('plinea') --->
Parámetro entrada de 3 A 0042.00 D
SelectTwo
S
500A INZ(' ')
0106.02 * Solo con Order by...
0107.00
C
Eval SelectTwo = %TRIMR(Select) + ' '
0108.00
C
+ OrderBy
----> SI Selecciona registros 0108.01 * Solo con Where...
0108.02
C*
Eval SelectTwo = %TRIMR(SelectOne)
0108.03
C*
+ Where
-----> No selecciona registros
Realizando el debug, y
evaluando el campo SELECTTWO, compone lo siguiente:
'SELECT mnpolf.epor, mnpof.enpor, mnpolf.eporl, mnpolf.estsa '
'FROM mnpolf INNER JOIN mnpof ON mnpolf.epor = mnpof.epor
WHE' 'RE mnpolf.eline=plinea '
----- Original Message ----- From: Fernando Pérez
To: forum.help400@combios.es
Sent: Thursday, October 13, 2005 5:50 PM Subject: Re: SQL
dinámico en programa ILE RPG
c1, ..., c4 han de ser variables
definidas en el programa ( no valen campos de ficheros ni de
pantallas).
El error del paso de parámetros no creo que se deba
a usar sql, que lo permite. En todo caso, ya que es ile, prueba a
definirle el prototipo y el interfaz, a ver si así.
Juan
Antonio escribió:
He estado realizando algún programa a este
respecto, y me encuentro con dos problemas.
1.- El SQL está realizado con la unión de dos
tablas, de manera que en las sentencias:
0157.00 C/EXEC SQL
0159.01 C+ FETCH NEXT FROM mycsr
0159.02 C+ INTO :c1, :c2, :c3, :c4
0160.00 C/END-EXEC me está dando en la
compilación que los campos no existen. Claramente, lo que me falta
es la calificación de a qué tabla corresponden, pero desconozco la
sintaxis a utilizar. He probado con :tabla.c1, :tabla1.c2 etc pero
sigue dándome error. ¿Alguien me orienta?.
2.- El otro tema, es que debo pasarle un parámetro al programa, y este
no me lo permite. Al quitarle el Entry Plist queda resuelto, pero me
es necesario pasarle un valor para la selección. ¿Alguna idea?.
Gracias.
-- Saludos.
Fernando Pérez
Cerámica Saloni. Dpto. Sistemas
--
Mi blog sobre as400 http://www.ajut400.com
__________________________________________________
Forum.HELP400 es un servicio más de NEWS/400. © Publicaciones
Help400, S.L. - Todos los derechos reservados http://www.help400.es
_____________________________________________________
Para
darte de baja visita la siguente URL: http://coyote.combios.es/mailman/listinfo/forum.help400
__________________________________________________
Forum.HELP400 es un servicio más de NEWS/400. © Publicaciones
Help400, S.L. - Todos los derechos reservados http://www.help400.es
_____________________________________________________
Para darte
de baja visita la siguente URL: http://coyote.combios.es/mailman/listinfo/forum.help400
-- Saludos.
Fernando
Pérez
Cerámica Saloni.
Dpto. Sistemas
|