Сегодня я хочу рассказать Вам о том, как можно организовать работу с DB2, используя язык REXX.
Для выполнения SQL команд нужно использовать функцию DSNREXX. Пример использования:
/**********************************************************************/ /* Connect to DB2 system */ /**********************************************************************/ ConnectDB2: ADDRESS DSNREXX "CONNECT" db2sys RETURN
Команда DSNREXX должна быть доступна для работы - это можно обеспечить так:
"SUBCOM DSNREXX" IF RC THEN S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX')
Общая логика REXX программы, обращающейся к DB2, следующая:
1. Подключаемся к DB2 подсистеме
2. Выполняем DB2 команды
3. Отключаемся от DB2 подсистеме
Банально, не правда ли? =)
Итак, сам текст REXX программы, которой в качестве аргумента передается имя DB2 подсистемы:
/* REXX */ trace 'o' Parse Upper Arg db2sys CALL ConnectDB2 CALL Exec_Statement CALL DisconnectDB2 /**********************************************************************/ /* Connect to DB2 system */ /**********************************************************************/ ConnectDB2: "SUBCOM DSNREXX" /* Host cmd env available? */ IF RC THEN /* No--make one */ S_RC = RXSUBCOM('ADD','DSNREXX','DSNREXX') ADDRESS DSNREXX "CONNECT" db2sys RETURN /**********************************************************************/ /* Execute DB2 SQL statement */ /**********************************************************************/ Exec_Statement: ExecStm = "SELECT * FROM MYOWNER.MYTABLE" ADDRESS DSNREXX "EXECSQL" , ExecStm RETURN /**********************************************************************/ /* Disconnect from DB2 system */ /**********************************************************************/ DisconnectDB2: ADDRESS DSNREXX "DISCONNECT" /* Delete the host command */ /* environment for */ S_RC = RXSUBCOM('DELETE','DSNREXX','DSNREXX') RETURN
Обратите вниманию, что в программе отсутствует проверка SQL кода (находится в переменной SQLCODE) - для упрощения.

Последние комментарии
39 недели 5 дня назад
39 недели 5 дня назад