Para ejecutar el ejemplo del manejador de errores ha de crear dos bases de datos y cada una ha de contener una tabla. El siguiente script crea las bases de datos que se necesitan para ejecutar el ejemplo del manejador de errores:
CREATE DB ERRORDB CONNECT TO ERRORDB BIND 'dir_instalación\bnd\@db2cli.lst' blocking all grant public CONNECT RESET CONNECT TO ERRORDB DROP TABLE ERRORS CREATE TABLE ERRORS (MSGID BLOB(48), TEXT CHAR(250), ERRORNUM INTEGER, ERRORDATE TIMESTAMP, FLOWNAME CHAR(32), NODENAME CHAR(32), MSGDATA BLOB(3200)) CONNECT RESET CREATE DB STAFFDB CONNECT TO STAFFDB BIND 'dir_instalación\bnd\@db2cli.lst' blocking all grant public CONNECT RESET CONNECT TO STAFFDB DROP TABLE STAFF CREATE TABLE STAFF (STAFFNUM CHAR(10), LASTCHANGE TIMESTAMP, FIRSTNAME CHAR(30), LASTNAME CHAR(30)) CONNECT RESET TERMINATE
El script realiza las tareas siguientes:
Las instrucciones suponen que utiliza DB2 Universal Database. Cuando cree y acceda a las tablas STAFFDB y ERRORDB, tenga presente los puntos siguiente:
Para crear las bases de datos:
db2start
db2 -vf errorhandlerdb2.sql
Espere a que el script termine de ejecutarse. Si ejecuta el script por primera vez, aparece el siguiente mensaje, donde DB2ADMIN es su nombre de usuario y TBNAME es el nombre de la tabla:
DB21034E El mandato se ha procesado como una sentencia SQL porque no era un
de línea de mandatos. Durante el proceso de SQL ha devuelto:
SQL0204N "DB2ADMIN.TBNAME" es un nombre
indefinido. SQLSTATE=42704
Haga caso omiso de estos mensajes. Los mensajes aparecen porque el script intenta eliminar cualquier tabla existente con el mismo nombre que las tablas que está creando, pero si no ha ejecutado el script antes, el programa no puede encontrar esas tablas.
ERRORDB= IBM DB2 ODBC Database STAFFDB= IBM DB2 ODBC Database
[ERRORDB] Driver=/opt/IBM/db2/V8.1/lib/libdb2.so Description=ERRORDB DB2 ODBC Database Database=ERRORDB [STAFFDB] Driver=/opt/IBM/db2/V8.1/lib/libdb2.so Description=STAFFDB DB2 ODBC Database Database=STAFFDB
Ahora los controladores ODBC ya están configurados correctamente.