Hola en cuanto a la primera, yo suelo utilizar un Get Diagnostics :rcount = 
DB2_Number_rows

De: Forum.help400 <[email protected]> En nombre de 
datil400
Enviado el: martes, 16 de junio de 2020 11:05
Para: forum.help400 <[email protected]>
Asunto: Re: Dos preguntas trascendentales SQL

¡Claro!, como ocurre con casi todos los comandos SQL. SQLCOD se inicializa 
después de ejecutarse la sentencia SQL, realmente se inicializa la estructura 
de datos SQLCA.

El mar., 16 jun. 2020 a las 9:59, Alberto Martinez 
(<[email protected]<mailto:[email protected]>>) escribió:
Vale.digamos que en el segundo fetch next 'recuperas' implícitamente el valor 
del Sqlcod, no?



De:        "datil400" <[email protected]<mailto:[email protected]>>
Para:        "forum.help400" 
<[email protected]<mailto:[email protected]>>
Fecha:        16/06/2020 09:37
Asunto:        ** Newsletter ** Re: Dos preguntas trascendentales SQL
Enviado por:        "Forum.help400" 
<[email protected]<mailto:[email protected]>>
________________________________



Hola Alberto,

respecto a la primera pregunta no lo tengo muy claro, pero creo que son 
equivalentes.

La segunda duda la tengo más clara. Con colegas y compañeros siempre hemos 
discutido sobre la mejor fórmula para construir un bucle de lectura. A casi 
todos les gusta la estructura que muestras en el correo. A mí no, le veo muchos 
inconvenientes. Yo construyo los bucles así (usando tu ejemplo):

exec sql fetch next from @cursor into :@sortida;
dow sqlcod <> 100 and sqlcod >= 0;
   hacer_cosas();

   exec sql fetch next from @cursor into :@sortida;
enddo;

Lo veo mucho más simple, mucho más limpio y, en tu caso, la comparación del dow 
no se ve afectada por una tercera sentencia SQL dentro de hacer_cosas().

Al final se trata más de gustos personales que de otra cosa, ¿cual es el mejor 
bucle? Yo lo tengo claro.

Saludos,

Javier Mora


El mar., 16 jun. 2020 a las 8:29, Alberto Martinez 
(<[email protected]<mailto:[email protected]>>) escribió:
Buenos dias. Tengo un par de dudas de SQL que las estoy haciendo mecánicamente 
hace mucho y hace tiempo  que pienso en consultarlo al Foro a ver cómo lo véis.
Lo primero es, para saber las líneas afectadas en un Insert delete o update, 
¿es lo mismo usar @variable=Sqlerrd(3) (o @variable=Sqlerr3) que 
getdiagnostics: @variable=ROW_COUNT?
Y luego otra:
Supongo que todos hacemos bucles del tipo:
        Dow Sqlcod<>100 and Sqlcod>=0;
          Exec Sql Fetch Next from @cursor into :@Sortida;
          If Sqlcod<>100 and Sqlcod>=0;
              hacer_cosas();

          ENDIF;
       Enddo;

El caso es que si hacer_cosas() es por ejemplo otra selección SQL que por lo 
que sea no encuentra un valor , nos cambia el valor del SQLcod y nos manda el 
bucle al traste.
Yo lo que hago es guardarme el valor del Sqlcod antes de llamar a hacer_cosas() 
y luego dejarlo como estaba.
Pero... hay otra manera pelín más elegante?

Gracias!! ____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( 
http://bit.ly/db68dd<https://eur06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbit.ly%2Fdb68dd&data=02%7C01%7C%7Cd81f2fe9a8e54341309d08d811d42933%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637278950202884024&sdata=tCaNrU0MrES3lxf%2Bj7jBa19kwmKe0WVGvfJp70tpp1g%3D&reserved=0>
 )
Forum.Help400 © Publicaciones Help400, 
S.L.____________________________________________________
nete a Recursos AS400, nuestra Comunidad ( 
http://bit.ly/db68dd<https://eur06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbit.ly%2Fdb68dd&data=02%7C01%7C%7Cd81f2fe9a8e54341309d08d811d42933%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637278950202894024&sdata=e%2FJ9jE80stSFG2POCZyEJQo7ukKkRKLhdMuJ18FyjnA%3D&reserved=0>
 )
Forum.Help400  Publicaciones Help400, S.L.
____________________________________________________
Únete a Recursos AS400, nuestra Comunidad ( 
http://bit.ly/db68dd<https://eur06.safelinks.protection.outlook.com/?url=http%3A%2F%2Fbit.ly%2Fdb68dd&data=02%7C01%7C%7Cd81f2fe9a8e54341309d08d811d42933%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637278950202894024&sdata=e%2FJ9jE80stSFG2POCZyEJQo7ukKkRKLhdMuJ18FyjnA%3D&reserved=0>
 )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
�nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
Forum.Help400 � Publicaciones Help400, S.L.

Reply via email to