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.
