27.10.2020 Views

Manual de Recomendaciones - Desarrolladores Cobol DB2-CICS en Altamira

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

orden que el cursor del que se está leyendo.

Se han detectado cursores que no han sido cerrados durante la ejecución del programa.

Es obligatorio cerrar de forma explícita todos los cursores abiertos durante un proceso.

Sólo en caso de error serán cerrados por terminación anormal.

Las columnas actualizadas en UPDATE deben ser las mismas que las declaradas en la

cláusula FOR UPDATE.

Las columnas actualizadas mediante la sentencia UPDATE WHERE CURRENT OF CURSOR deben

ser todas las declaradas en la cláusula FOR UPDATE.

En cursores para borrar filas con DELETE WHERE CURRENT OF, en la cláusula FOR UPDATE

debe tener una sola columna.

Para los cursores declarados FOR UPDATE y en los que sólo se pretende borrar filas (no

actualizaciones) con la sentencia DELETE WHERE CURRENT OF CURSOR, en la cláusula FOR

UPDATE del DECLARE CURSOR sólo se debe declarar una columna.

Evitar el uso de un cursor FOR UPDATE que no informa en el SET del WHERE CURRENT OF

todas las columnas.

En la cláusula FOR UPDATE no se deben incluir columnas que no van a ser modificadas en el

proceso.

El cursor definido puede ser transformado en una SELECT.

Los cursores deben ser utilizados sólo cuando el WHERE de la sentencia devuelva más de una fila y

además todas las filas devueltas necesiten ser tratadas por el programa. En caso contrario, se

deben utilizar sentencias SELECT, controlando el SQLCODE –811 en caso de que la sentencia

devuelva más de una fila.

Evitar el uso de GROUP BY en un acceso SQL.

Por rendimiento, evitar el uso de la cláusulas GROUP BY en sentencias que provoquen SORT DB2

No se recomienda el uso de SELECT *.

Esto es debido a que su uso no independiza al módulo de posibles alteraciones de la tabla como

añadir columnas, etc.

No deben usarse constantes en sentencias SQL excepto cuando se usa IN / NOT IN.

Definir variables HOST para estas constantes y utilizar estas variables en la sentencia SQL.

Es conveniente utilizar las variables HOST definidas en la DCLGEN.

No se debe usar la sentencia SELECT COUNT(*) si sólo se pretende verificar la existencia o

no de filas.

Utilizar para ello una sentencia SELECT y controlar los valores de SQLCODE 0, -811 y 100 para

comprobar si existe o no la fila buscada. Si se precisase conocer el número de filas afectadas por un

UPDATE/DELETE/INSERT, puede obtenerse del campo SQLERRD(3) de la SQLCA una vez

ejecutada la instrucción.

La sentencia INSERT debe codificarse completa y con las variables HOST en el mismo orden

que los valores que toman.

Las variables HOST deben estar en el mismo orden en que se han especificado los atributos. Esto

no significa que se especifiquen todas las columnas de una tabla, sino aquéllas que se necesiten, ya

Título del documento y versión 34

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!