Componente de registro SQL en formato fuente EGL

Un componente de registro de tipo sqlRecord se declara en un archivo EGL, como se describe en el apartado Formato fuente EGL. Para obtener una visión general de la forma en que EGL interactúa con bases de datos relacionales, consulte el apartado Soporte SQL.

A continuación se ofrece un ejemplo de componente de registro SQL:
  Record mySQLRecordPart type sqlRecord
    { 
      tableNames = [["mySQLTable", "T1"]],
      keyItems = ["myHostVar01"],
      defaultSelectCondition = 
        #sqlCondition{ // sin espacio entre #sqlCondition y la llave
          myHostVar02 = 4 -- iniciar cada comentario SQL
                        -- con guión doble
            }
     }

    // La estructura de un registro SQL no tiene jerarquía
    10 myHostVar01 myDataItemPart01 
       {
         column = "column01",
         isNullable = no,
         isReadOnly = no
       };
    10 myHostVar02 myDataItemPart02
       {
         column = "column02",
         isNullable = yes,
         isReadOnly = no
       };
	 end
El diagrama de sintaxis de un componente de registro SQL es el siguiente:

Diagrama de sintaxis de un componente de registro SQL
Record nombreComponenteRegistro sqlRecord
Identifica el componente como componente de registro de tipo sqlRecord y especifica el nombre. Para conocer las normas, consulte el apartado Convenios de denominación.
tableNames = [["nombre", "etiqueta"], ...., ["nombre", "etiqueta"]]
Lista la tabla o tablas a las que accede el registro SQL. Si especifica una etiqueta para un nombre de tabla determinado, ésta se incluye en las sentencias SQL por omisión asociadas con el registro.
Puede incluir comillas (") en un nombre de tabla colocando el carácter de escape (\) delante de ellas. Ese convenio es necesario, por ejemplo, cuando un nombre de tabla es una de las siguientes palabras reservadas SQL:
  • CALL
  • FROM
  • GROUP
  • HAVING
  • INSERT
  • ORDER
  • SELECT
  • SET
  • UPDATE
  • UNION
  • VALUES
  • WHERE
Cada uno de estos nombres debe especificarse entre comillas. Si el único nombre de tabla es SELECT, por ejemplo, la cláusula tableNames será la siguiente:
  tableNames=[["\"SELECT\""]]

Una situación similar se produce cuando una de dichas palabras reservadas SQL se utiliza como nombre de columna.

tableNameVariables = [["nomVar", "etiqueta"], ...., ["nomVar", "etiqueta"]]

Lista una o varias variables de nombre de tabla, cada una de las cuales contiene el nombre de una tabla a la que accede el registro SQL. El nombre de una tabla sólo se determina en tiempo de ejecución.

La variable puede estar calificada por un nombre de biblioteca y puede tener subíndices.

Si especifica una etiqueta para una variable de nombre de tabla determinada, ésta se incluye en las sentencias SQL por omisión asociadas con el registro.

Puede utilizar variables de nombre de tabla aisladas o junto con nombres de tabla, pero la utilización de variables de nombre de tabla garantiza que las características de la sentencia SQL sólo se determinarán en tiempo de ejecución.

Puede incluir comillas (") en una variable de nombre de tabla colocando el carácter de escape (\) delante de ellas.

keyItems = = ["elemento", ...., "elemento"]
Indica que la columna asociada con un elemento de registro determinado forma parte de la clave de la tabla de base de datos. Si la tabla de base de datos tiene una clave compuesta, el orden de los elementos del registro definidos como claves debe coincidir con el orden de las columnas que son claves de la tabla de base de datos.
defaultSelectCondition = #sqlCondition { condiciónSQL }
Define parte del criterio de búsqueda de la cláusula WHERE de una sentencia SQL implícita. El valor de defaultSelectCondition no incluye la palabra clave SQL WHERE.
EGL proporciona una sentencia SQL implícita con una cláusula WHERE cuando se codifica una de estas sentencias EGL:
  • get
  • open
  • execute (sólo al solicitar una sentencia SQL implícita DELETE o UPDATE)

Las sentencias SQL implícitas no se almacenan en el código fuente EGL. Para obtener una visón general de esas sentencias, consulte el apartado Soporte SQL.

containerContextDependent
Indica si el registro hace referencia como mínimo a un elemento de datos cuya definición varía según el programa, la biblioteca o el manejador de páginas que utiliza el registro. Para obtener detalles, consulte el apartado containerContextDependent.
nivel
Entero que indica la posición jerárquica de un campo de estructura. Si excluye este valor, el componente es un componente de registro; si incluye este valor, el componente es un componente de registro fijo.
nombreCampoEstructura
Nombre de un campo de estructura. Para conocer reglas, consulte la sección Convenios de denominación.
tipoPrimitivo
El tipo primitivo asignado al campo de estructura.
longitud
La longitud del campo de estructura, que es un entero. El valor de un área de memoria basada en el elemento de estructura incluye el número especificado de caracteres o dígitos.
decimales
Para un tipo numérico (BIN, DECIMAL, NUM, NUMC o PACF), puede especificar decimales, que es un entero que representa el número de posiciones después de la coma decimal. El número máximo de posiciones decimales es el menor de dos números: 18 o el número de dígitos declarado como longitud. La coma decimal no se almacena con los datos.
"máscaraFechaHora"
Para elementos de tipo INTERVAL o TIMESTAMP, puede especificar máscaraFechaHora", que asigna un significado (como por ejemplo "dígito de año") a una posición dada en el valor de elemento. La máscara no se almacena con los datos.
nombreComponenteElementoDatos
Especifica el nombre de un componente dataItem que actúa como modelo de formato del elemento de estructura que se declara. Para obtener detalles, consulte el apartado typeDef.
embed nombreComponenteRegistroSQL
Especifica el nombre de un componente de registro de tipo sqlRecord e incorpora la estructura de dicho componente de registro en el registro actual. La estructura incorporada no añade un nivel de jerarquía al registro actual. Para obtener detalles, consulte el apartado typeDef.
propiedad
Una propiedad de elemento, como se describe en el apartado Visión general de las propiedades EGL y alteraciones temporales. En un registro SQL, las propiedades de campo SQL son particularmente importantes.

Conceptos relacionados
Proyectos, paquetes y archivos EGL
Visión general de las propiedades de EGL
Componentes
Referencias a componentes
Componentes de registro
Soporte de SQL
Typedef

Tareas relacionadas
Diagrama de sintaxis

Consulta relacionada
Matrices
containerContextDependent
Componente DataItem en formato fuente EGL
Formato fuente EGL
Componente de función en formato fuente EGL
Componente de registro indexado en formato fuente EGL
Componente de registro MQ en formato fuente EGL
Convenios de denominación
Tipos primitivos
Componente de programa en formato fuente EGL
Referencias a variables en EGL
Componente de registro relativo en formato fuente EGL
Componente de registro serie en formato fuente EGL
Propiedades de elementos SQL

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