Sentencias CONNECT explícitas
La utilización de sentencias CONNECT proporciona portabilidad de aplicaciones en todos los clientes Db2 y requiere que la aplicación gestione las conexiones.
Mediante la sentencia CONNECT, un programa de aplicación se conecta explícitamente a cada servidor. Debe vincular los DBRM para las sentencias de SQL que deben ejecutarse en el servidor con paquetes que residan en dicho servidor.
La aplicación se conecta a cada servidor basándose en el nombre de ubicación de la sentencia CONNECT. Puede especificar explícitamente un nombre de ubicación o puede especificar un nombre de ubicación en una variable de lenguaje principal. La emisión de la sentencia CONNECT cambia el registro especial CURRENT SERVER para que muestre la ubicación del nuevo servidor.
Ejemplo
Suponga que una aplicación incluye un bucle de programa que lee un nombre de ubicación, se conecta a la ubicación y ejecuta una sentencia INSERT. La aplicación inserta un nuevo nombre de ubicación en una variable de lenguaje principal, LOCATION_NAME, y ejecuta las sentencias siguientes:
EXEC SQL
CONNECT TO :LOCATION_NAME;
EXEC SQL
INSERT INTO IDP101.PROJ VALUES (:PROJNO, :PROJNAME, :DEPTNO,
:RESPEMP, :MAJPROJ);Las variables de lenguaje principal coinciden con la declaración para la tabla PROJ.
Db2 garantiza la coherencia de los datos en una transacción distribuida. Para mantener la coherencia de los datos en todas las ubicaciones, la aplicación confirma el trabajo únicamente después de ejecutarse el bucle de programa para todas las ubicaciones. Tanto si cada ubicación confirma INSERT como si una anomalía impide la inserción a cualquier ubicación, todas las demás ubicaciones retrotraen INSERT.