Re: Valor Nulo en SQL

2017-06-29 Por tema Carlos C.
Buenas tardes Foro


Les quiero comentar que pude solucionar el tema de datos valores nulos.

Tome un ejemplo de la web y funciona perfectamente.


Gracias Juan y Javier por la ayuda.


Screetshot del programa:






D InvoiceData ds
D  InvNbr5p 0
D  InvLineNbr3p 0
D  ItemNbr   6a
D  ItemDescr30a
D  ItemPrice 5p 2
D  QtySold   3p 0

D NullIndss  5i 0 dim(6)

D NullValue   s   like(NullInds) inz(-1)


 exec sql
declare Invoice cursor for
   SELECT Ln.InvNbr, Ln.LineNbr,
  Ln.ItemNbr, Itm.Descrip,
  Ln.Price, Ln.Qty
 FROM InvLine as Ln
 LEFT JOIN Items as Itm
   ON Ln.ItemNbr = Itm.Item;

 *inlr = *on;

 exec sql
open Invoice;

 dow '1';
exec sql
   fetch Invoice into :InvoiceData :NullInds;
if sqlstt = '02000';
   leave;
endif;

if NullInds(4) = NullValue;
   // do whatever
endif;

 enddo;


Saludos y muchas gracias






From: Carlos C. 
Sent: Thursday, June 29, 2017 2:15 PM
To: forum.help400
Subject: Re: Valor Nulo en SQL


Hola Juan

Si, le agregue las opciones, igual no lee.


Te paso como esta la hoja H.


 H  DATEDIT(*DMY/)  THREAD(*SERIALIZE)
 H DFTACTGRP(*NO) BNDDIR('QC2LE')
 H CVTOPT(*VARCHAR)
 H FIXNBR(*ZONED:*INPUTPACKED )
 H ALWNULL(*USRCTL)


Por eso ya hice la consulta en forma especifica.


Gracias Juan.



Saludos




From: forum.help400-boun...@listas.combios.es 
 on behalf of Juan Gutierrez Ruiz 

Sent: Thursday, June 29, 2017 2:07 PM
To: forum.help400
Subject: Re: Valor Nulo en SQL


hola Carlos

en el programa RPG en la hoja H debes de poner el parametro ALWNULL(*USRCTL)


o cuando lo compiles

Crear programa RPG enlazado (CRTBNDRPG)

Teclee elecciones, pulse Intro.

Permitir valores nulos . . . . . ALWNULL*USRCTL


 espero te sirva
saludos




De: forum.help400-boun...@listas.combios.es 
 en nombre de Carlos C. 

Enviado: jueves, 29 de junio de 2017 10:59 a. m.
Para: forum.help400
Asunto: Valor Nulo en SQL



Buenos dias Foro

Una consulta, tema SQL.

Tengo una tabla creada a traves de DDS y tiene valores nulos.
Al ejecutar la sentencia en forma manual el SQL selecciona y despliega los 
registros sin problemas.

Pero en el programaRPG obvia los registros con valores nulos; la consulta es? 
debo agregar una condicion al programa?

Esta es la sentencia.

Exec Sql Declare C1 Cursor For
   select *
   From mylib/mytabla
 Where MFCICC =:v1
   and v2 Not in ('W', 'I')
 Order by
   case
   when :orca1255 = 'x' then x
   end
   FOR READ ONLY;


 Exec sql Open C1;// Abre Cursor

 For I to 999 ;// Abre un Loop para leer
   Exec sql Fetch C1 INTO :datoDs;// Estructura de datos definido como 
externo en la hoja D

 If SqlStt = '02000' ;
Leave;
 Endif;
EndFor ;


Saludos y gracias !!! por la ayuda




Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Re: Valor Nulo en SQL

2017-06-29 Por tema Carlos C.
Hola Juan

Si, le agregue las opciones, igual no lee.


Te paso como esta la hoja H.


 H  DATEDIT(*DMY/)  THREAD(*SERIALIZE)
 H DFTACTGRP(*NO) BNDDIR('QC2LE')
 H CVTOPT(*VARCHAR)
 H FIXNBR(*ZONED:*INPUTPACKED )
 H ALWNULL(*USRCTL)


Por eso ya hice la consulta en forma especifica.


Gracias Juan.



Saludos




From: forum.help400-boun...@listas.combios.es 
 on behalf of Juan Gutierrez Ruiz 

Sent: Thursday, June 29, 2017 2:07 PM
To: forum.help400
Subject: Re: Valor Nulo en SQL


hola Carlos

en el programa RPG en la hoja H debes de poner el parametro ALWNULL(*USRCTL)


o cuando lo compiles

Crear programa RPG enlazado (CRTBNDRPG)

Teclee elecciones, pulse Intro.

Permitir valores nulos . . . . . ALWNULL*USRCTL


 espero te sirva
saludos




De: forum.help400-boun...@listas.combios.es 
 en nombre de Carlos C. 

Enviado: jueves, 29 de junio de 2017 10:59 a. m.
Para: forum.help400
Asunto: Valor Nulo en SQL



Buenos dias Foro

Una consulta, tema SQL.

Tengo una tabla creada a traves de DDS y tiene valores nulos.
Al ejecutar la sentencia en forma manual el SQL selecciona y despliega los 
registros sin problemas.

Pero en el programaRPG obvia los registros con valores nulos; la consulta es? 
debo agregar una condicion al programa?

Esta es la sentencia.

Exec Sql Declare C1 Cursor For
   select *
   From mylib/mytabla
 Where MFCICC =:v1
   and v2 Not in ('W', 'I')
 Order by
   case
   when :orca1255 = 'x' then x
   end
   FOR READ ONLY;


 Exec sql Open C1;// Abre Cursor

 For I to 999 ;// Abre un Loop para leer
   Exec sql Fetch C1 INTO :datoDs;// Estructura de datos definido como 
externo en la hoja D

 If SqlStt = '02000' ;
Leave;
 Endif;
EndFor ;


Saludos y gracias !!! por la ayuda




Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Re: Valor Nulo en SQL

2017-06-29 Por tema Carlos C.
muchas gracias Javier.


Saludos



From: forum.help400-boun...@listas.combios.es 
 on behalf of Javier Mora 

Sent: Thursday, June 29, 2017 12:41 PM
To: forum.help400
Subject: RE: Valor Nulo en SQL


Tienes dos opciones



1.   Utilizar las funciones IFNULL o COALESCE para convertir los nulos en 
un valor válido para RPG.

2.   Utilizar una DS para controlar los campos nulos. Esto se consigue 
añadiendo en la sentencia SQL una DS de enteros que indicará si el campo es 
nulo (valor = 1) o no (valor = 0). En los manuales de programación de SQL lo 
explica con más detalle.



Javier



De: forum.help400-boun...@listas.combios.es 
[mailto:forum.help400-boun...@listas.combios.es] En nombre de Carlos C.
Enviado el: jueves, 29 de junio de 2017 18:00
Para: forum.help400
Asunto: Valor Nulo en SQL





Buenos dias Foro

Una consulta, tema SQL.

Tengo una tabla creada a traves de DDS y tiene valores nulos.
Al ejecutar la sentencia en forma manual el SQL selecciona y despliega los 
registros sin problemas.

Pero en el programaRPG obvia los registros con valores nulos; la consulta es? 
debo agregar una condicion al programa?

Esta es la sentencia.

Exec Sql Declare C1 Cursor For
   select *
   From mylib/mytabla
 Where MFCICC =:v1
   and v2 Not in ('W', 'I')
 Order by
   case
   when :orca1255 = 'x' then x
   end
   FOR READ ONLY;


 Exec sql Open C1;// Abre Cursor

 For I to 999 ;// Abre un Loop para leer
   Exec sql Fetch C1 INTO :datoDs;// Estructura de datos definido como 
externo en la hoja D


 If SqlStt = '02000' ;
Leave;
 Endif;
EndFor ;


Saludos y gracias !!! por la ayuda




Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

Re: Valor Nulo en SQL

2017-06-29 Por tema Juan Gutierrez Ruiz
hola Carlos

en el programa RPG en la hoja H debes de poner el parametro ALWNULL(*USRCTL)


o cuando lo compiles

Crear programa RPG enlazado (CRTBNDRPG)

Teclee elecciones, pulse Intro.

Permitir valores nulos . . . . . ALWNULL*USRCTL


 espero te sirva
saludos




De: forum.help400-boun...@listas.combios.es 
 en nombre de Carlos C. 

Enviado: jueves, 29 de junio de 2017 10:59 a. m.
Para: forum.help400
Asunto: Valor Nulo en SQL



Buenos dias Foro

Una consulta, tema SQL.

Tengo una tabla creada a traves de DDS y tiene valores nulos.
Al ejecutar la sentencia en forma manual el SQL selecciona y despliega los 
registros sin problemas.

Pero en el programaRPG obvia los registros con valores nulos; la consulta es? 
debo agregar una condicion al programa?

Esta es la sentencia.

Exec Sql Declare C1 Cursor For
   select *
   From mylib/mytabla
 Where MFCICC =:v1
   and v2 Not in ('W', 'I')
 Order by
   case
   when :orca1255 = 'x' then x
   end
   FOR READ ONLY;


 Exec sql Open C1;// Abre Cursor

 For I to 999 ;// Abre un Loop para leer
   Exec sql Fetch C1 INTO :datoDs;// Estructura de datos definido como 
externo en la hoja D

 If SqlStt = '02000' ;
Leave;
 Endif;
EndFor ;


Saludos y gracias !!! por la ayuda




Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.

RE: Valor Nulo en SQL

2017-06-29 Por tema Javier Mora
Tienes dos opciones


1.   Utilizar las funciones IFNULL o COALESCE para convertir los nulos en 
un valor válido para RPG.

2.   Utilizar una DS para controlar los campos nulos. Esto se consigue 
añadiendo en la sentencia SQL una DS de enteros que indicará si el campo es 
nulo (valor = 1) o no (valor = 0). En los manuales de programación de SQL lo 
explica con más detalle.

Javier

De: forum.help400-boun...@listas.combios.es 
[mailto:forum.help400-boun...@listas.combios.es] En nombre de Carlos C.
Enviado el: jueves, 29 de junio de 2017 18:00
Para: forum.help400
Asunto: Valor Nulo en SQL



Buenos dias Foro

Una consulta, tema SQL.

Tengo una tabla creada a traves de DDS y tiene valores nulos.
Al ejecutar la sentencia en forma manual el SQL selecciona y despliega los 
registros sin problemas.

Pero en el programaRPG obvia los registros con valores nulos; la consulta es? 
debo agregar una condicion al programa?

Esta es la sentencia.
Exec Sql Declare C1 Cursor For
   select *
   From mylib/mytabla
 Where MFCICC =:v1
   and v2 Not in ('W', 'I')
 Order by
   case
   when :orca1255 = 'x' then x
   end
   FOR READ ONLY;

 Exec sql Open C1;// Abre Cursor

 For I to 999 ;// Abre un Loop para leer
   Exec sql Fetch C1 INTO :datoDs;// Estructura de datos definido como 
externo en la hoja D

 If SqlStt = '02000' ;
Leave;
 Endif;
EndFor ;


Saludos y gracias !!! por la ayuda



Únete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 © Publicaciones Help400, S.L.