Propiedades de elementos SQL

Las propiedades de elementos SQL especifican las características que son relevantes al utilizar un elemento en un registro de tipo SQLRecord. Sin embargo, no es necesario especificar ninguna de las propiedades de elemento SQL, ya que se suministran valores por omisión.

Las propiedades son las siguientes:

column = "nombreColumna"

La propiedad column hace referencia al nombre de la columna de tabla de base de datos que está asociada con el elemento. El valor por omisión es el nombre del elemento. La columna y el elemento relacionado afectan a las sentencias SQL por omisión, como se describe en el apartado Soporte de SQL.

Sustituya "nombreColumna" por una serie entrecomillada, una variable de tipo carácter o una concatenación, como en este ejemplo:
  column = "Columna" + "01"
Si un nombre de columna es una de las siguientes palabras reservadas SQL, se aplica una sintaxis especial:
  • CALL
  • COLUMNS
  • FROM
  • GROUP
  • HAVING
  • INSERT
  • ORDER
  • SELECT
  • SET
  • UPDATE
  • VALUES
  • WHERE
Como se muestra en el ejemplo siguiente, cada uno de esos nombres debe especificarse entre comillas y cada una de las comillas debe ir precedida de un carácter de escape (\):
  column = "\"SELECT\""

(Una situación similar se aplica si utiliza estas palabras reservadas como nombres de tabla).

isNullable = yes, isNullable = no

La propiedad isNullable indica si el elemento puede establecerse en nulo, como es adecuado si la columna de tabla asociada con el elemento puede establecerse en NULL. Los valores válidos son yes (el valor por omisión) y no.

Para un elemento dado de un registro SQL, están disponibles las siguientes características sólo si isNullable se establece en yes:
  • El programa puede aceptar un valor NULL de la base de datos en el elemento.
  • El programa puede utilizar una sentencia set para anular el elemento, como se describe en el apartado set. El efecto es también inicializar el elemento, tal como se describe en el apartado Inicialización de datos.
  • El programa puede utilizar una sentencia if para probar si el elemento se ha establecido en nulo.
  • El programa COBOL puede utilizar una sentencia if para probar si los datos recibidos de la base de datos se han truncado. Esta característica está disponible en el programa Java independientemente del valor de isNullable.

isReadOnly = no, isReadOnly = yes

La propiedad isReadOnly indica si el elemento y la columna relacionada deben omitirse de las sentencias SQL por omisión que escriben en la base de datos o incluyen una cláusula FOR UPDATE OF. El valor por omisión es no; pero EGL trata el elemento de estructura como de "sólo lectura" en estas situaciones:
  • La propiedad key del registro SQL indica que la columna asociada con el elemento de estructura es una columna de clave; o
  • El componente de registro SQL está asociado con más de una tabla; o
  • El nombre de columna SQL es una expresión.

maxLen = entero

La propiedad maxLen especifica la longitud máxima de texto de campo que se escribe en la columna de base de datos. Siempre que sea posible, el valor por omisión para esta propiedad es la longitud del campo; pero el campo es de tipo STRING, no existe ningún valor predeterminado.

En relación con el código COBOL generado por EGL, se aplican las sentencias siguientes:
  • La propiedad es necesaria para los campos de tipo STRING.
  • Además de afectar a la salida, maxLen especifica la longitud del almacenamiento intermedio de entrada asignado para leer un valor de columna para la base de datos. Durante una lectura de base de datos, el valor de columna está truncado si el valor es mayor que el valor de maxLen especificado.

    Especifique que maxlen sea igual a la longitud definida para la columna para asegurarse de obtener todo el valor de la columna.

persistent = yes, persistent = no

La propiedad persistent indica si el campo se incluye en las sentencias SQL implícitas generadas para el registro SQL. Si el valor es yes, se produce un error en tiempo de ejecución en este caso:
  • El código se basa en una sentencia SQL implícita y
  • Ninguna columna coincide con el valor de la propiedad column específica de campo. (El valor por omisión es el nombre de campo.)

Establezca persistent en no si desea asociar una variable de programa temporal con una fila SQL sin tener una columna correspondiente para la variable en la base de datos. Una variable puede ser deseable, por ejemplo, para indicar si el programa ha modificado la fila.

Para obtener detalles acerca de las sentencias SQL implícitas, consulte la sección Soporte SQL.

sqlDataCode = código

El valor de la propiedad sqlDataCode es un número que identifica el tipo de datos SQL que están asociados con el elemento de registro. El sistema de gestión de bases de datos utiliza el código de datos cuando el usuario accede a dicho sistemas durante la declaración, la validación o la ejecución del programa generado.

La propiedad sqlDataCode sólo está disponible si ha configurado el entorno para la compatibilidad con VisualAge Generator. Para obtener detalles, consulte el apartado Compatibilidad con VisualAge Generator.

El valor por omisión depende del tipo primitivo y de la longitud del elemento de registro, como se muestra en la tabla siguiente. Para obtener más detalles, consulte el apartado Códigos de datos SQL.

Tipo primitivo EGL Longitud Código de datos SQL
BIN 4 501
9 497
CHAR <=254 453
>254 y <=4000 449
>4000 457
DBCHAR <=127 469
>127 y <=2000 465
>2000 473
DECIMAL cualquiera 485
HEX cualquiera 481
UNICODE <=127 469
>127 y <=2000 465
>2000 473

sqlVariableLen = no, sqlVariableLen = yes

El valor de la propiedad sqlVariableLen (antes la propiedad sqlVar) indica si los blancos finales y los nulos de un campo de caracteres se truncan antes de que el entorno de ejecución EGL escriba los datos en una base de datos SQL. Esta propiedad no tiene ningún efecto sobre los datos que no son de tipo carácter.

Especifique yes si la columna de tabla SQL correspondiente es del tipo de datos SQL varchar o vargraphic.

Tareas relacionadas
Recuperar datos de tabla SQL

Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.