sysLib.connect

La función de sistema sysLib.connect permite que un programa se conecte a una base de datos durante la ejecución. Esta función no devuelve ningún valor.


Diagrama de sintaxis de sysLib.connect
baseDatos
Identifica una base de datos.Identifica una base de datos:
Si el código se ejecuta como un programa COBOL, se aplica lo siguiente:
  • Si baseDatos se establece en RESET se vuelve al estado de conexión que está en vigor al principio de una unidad de ejecución, como se describe en la sección Base de datos por omisión.
  • De lo contrario, el valor de baseDatos debe ser un valor de la columna de ubicación de la tabla SYSIBM.LOCATIONS, que se encuentra en el subsistema DB2 UDB conectado a la región CICS.
  • En cualquier caso, la función de sistema sysLib.connect cierra todos los cursores, libera bloqueos, finaliza cualquier conexión existente y se conecta a la base de datos. A pesar de estas acciones, invoque sysLib.commit o sysLib.rollback antes de invocar sysLib.connect.
Si el código se ejecuta como un programa COBOL, se aplica lo siguiente:
  • Si baseDatos se establece en RESET se vuelve al estado de conexión que está en vigor al principio de una unidad de ejecución, como se describe en la sección Base de datos por omisión.
  • De lo contrario, el valor de baseDatos debe ser un valor de la columna de ubicación de la tabla SYSIBM.LOCATIONS, que se encuentra en el subsistema DB2 UDB.
  • En cualquier caso, la función de sistema sysLib.connect cierra todos los cursores, libera bloqueos, finaliza cualquier conexión existente y se conecta a la base de datos. A pesar de estas acciones, invoque sysLib.commit o sysLib.rollback antes de invocar sysLib.connect.
Si el código se ejecuta como un programa Java, se aplica lo siguiente:
  • Si baseDatos se establece en RESET se vuelve a conectar a la base de datos por omisión, pero si la base de datos por omisión no está disponible, el estado de conexión sigue igual; para obtener más información, consulte la sección Base de datos por omisión.
  • De lo contrario, busque el nombre de la base de datos física consultando la propiedad vgj.jdbc.database.servidor, donde servidor es el nombre de la base de datos especificada en la llamada a sysLib.connect. Si esta propiedad no está definida, el nombre de la base de datos que está especificado en la llamada a sysLib.connect se utiliza tal cual.
  • El formato del nombre de base de datos es distinto para las conexiones J2EE que para las conexiones no J2EE:
    • Si ha generado el programa para un entorno J2EE, utilice el nombre al que está enlazado el origen de datos en el registro JNDI; por ejemplo, jdbc/MyDB. Esta situación se produce si la opción del descriptor de construcción J2EE está establecida en YES.
    • Si ha generado el programa para un entorno JDBC no J2EE, utilice un URL de conexión; por ejemplo, jdbc:db2:MyDB. Esta situación se produce si la opción J2EE está establecida en NO.
idUsuario
ID de usuario que se utiliza para acceder a la base de datos. El argumento debe ser un elemento de tipo CHAR y longitud 8, y es válido un literal. El argumento es obligatorio, pero no se tiene en cuenta para la generación COBOL. Para obtener información general, consulte la sección Autorización de base de datos y nombres de tabla.
contraseña
Contraseña que se utiliza para acceder a la base de datos. El argumento debe ser un elemento de tipo CHAR y longitud 8, y es válido un literal. El argumento es obligatorio, pero no se tiene en cuenta para la generación COBOL.
ámbitoCompromiso
Este parámetro sólo es significativo si se genera salida Java. El valor es una de las siguientes palabras, y no pueden utilizarse comillas ni una variable:
type1 (el valor por omisión)
Sólo se soporta un compromiso de una fase. Una nueva conexión cierra todos los cursores, libera los bloqueos y finaliza cualquier conexión existente; sin embargo, invoque sysLib.commit o sysLib.rollback antes de realizar una conexión type1.

Si utiliza type1 como valor de ámbitoCompromiso, el valor del parámetro opciónDesconexión debe ser la palabra explicit, ya que es el valor por omisión.

type2
Una conexión a una base de datos no cierra cursores, libera bloqueos ni finaliza una conexión existente. Aunque puede utilizar varias conexiones para leer varias bases de datos, sólo debe actualizar una base de datos en una unidad de trabajo ya que sólo está disponible un compromiso de una fase.
twophase
Idéntico a type2.
opciónDesconexión
Este parámetro sólo es significativo si se genera salida Java. El valor es una de las siguientes palabras, y no pueden utilizarse comillas ni una variable:
explicit (el valor por omisión)
La conexión permanece activa después de que el programa invoca sysLib.commit o sysLib.rollback. Para liberar los recursos de la conexión, un programa debe emitir sysLib.disconnect.

Si utiliza type1 como valor de ámbitoCompromiso, el valor del parámetro opciónDesconexión debe establecerse en (o dejar que tome por omisión) la palabra explicit.

automatic
Una operación de compromiso o retrotracción finaliza una conexión existente.
conditional
Una operación de compromiso o retrotracción finaliza automáticamente una conexión existente, a menos que esté abierto un cursor y la opción de retención (hold) esté en vigor para ese cursor. Para obtener información detallada sobre la opción hold, consulte la sección open.
nivelAislamiento
Este parámetro indica el nivel de independencia de una transacción de base de datos con respecto a otra, lo cual sólo es significativo al generar salida Java
las palabras siguientes están por orden de severidad y, al igual que antes, no puede utilizar comillas ni una variable:
  • readUncommitted
  • readCommitted
  • repeatableRead
  • serializableTransaction (el valor por omisión)

Para obtener información detallada, consulte la documentación de JDBC de Sun Microsystems, Inc.

commitControl
Este parámetro especifica si se produce un compromiso después de cada cambio en la base de datos. Este parámetro no se tiene en cuentan en el código COBOL generado por EGL
Los valores válidos son los siguientes:
  • noAutoCommit (el valor por omisión) significa que el compromiso no es automático, lo que habitualmente implica una ejecución más rápida. Para conocer los detalles acerca de las reglas de compromiso y retrotracción en este caso, consulte la sección Unidad de trabajo lógica.
  • autoCommit significa que las actualizaciones se producen inmediatamente.

Puede pasar de autoCommit a noAutoCommit temporalmente. Para obtener más detalles, consulte la sección SysLib.beginDatabaseTransaction.

Consideraciones de definición

sysLib.connect establece las siguientes variables de sistema:
  • VGVar.sqlerrd[3]
  • sysVar.sqlca
  • sysVar.sqlcode
  • VGVar.sqlerrmc (disponible sólo en código COBOL)
  • VGVar.sqlWarn[2]
  • VGVar.sqlWarn[7] (disponible sólo en código COBOL)

Ejemplo

  sysLib.connect(myDatabase, myUserid, myPassword);
Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.