Vale.digamos que en el segundo fetch next 'recuperas' implícitamente el 
valor del Sqlcod, no? 



De:     "datil400" <[email protected]>
Para:   "forum.help400" <[email protected]>
Fecha:  16/06/2020 09:37
Asunto: ** Newsletter ** Re: Dos preguntas trascendentales SQL
Enviado por:    "Forum.help400" 
<[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]>) 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 )
Forum.Help400 © Publicaciones Help400, S.L.
____________________________________________________
nete a Recursos AS400, nuestra Comunidad ( http://bit.ly/db68dd )
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