DB2 - Banco de dados - Dclgen - declarations generator
O DCLGEN é um programa que gera uma codificação de declaração de variáveis HOST correspondentes às colunas de uma dada tabela.
Seu programa deve declarar as tabelas e visualizações que ele acessa. O gerador de declarações do DB2 , DCLGEN, produz essas instruções DECLARE para os programas C, COBOL e PL / I, para que você não precise codificar as instruções sozinho. DCLGEN também gera estruturas variáveis ??de host correspondentes.
O DCLGEN gera uma tabela ou declaração de exibição e a coloca em um membro de um conjunto de dados particionados que você pode incluir no seu programa. Quando você usa o DCLGEN para gerar uma declaração de tabela, o DB2 obtém as informações relevantes do catálogo do DB2. O catálogo contém informações sobre a definição de tabela ou exibição e a definição de cada coluna na tabela ou exibição. O DCLGEN usa essas informações para produzir uma instrução SQL DECLARE TABLE para a tabela ou exibição e uma declaração de estrutura PL / I ou C correspondente ou uma descrição do registro COBOL.
If p > 15, the PL/I compiler must support this precision, or a warning is generated.
struct {short int var_len; char var_data[n]; } var;
10 var. 49 var_LEN PIC 9(4) USAGE COMP. 49 var_TEXT PIC X(n).
n > 1
PIC G(n) USAGE DISPLAY-1.4 or PIC N(n).4
struct VARGRAPH {short len; sqldbchar data[n]; } var;
10 var. 49 var_LEN PIC 9(4) USAGE COMP. 49 var_TEXT PIC G(n) USAGE DISPLAY-1.4 or 10 var. 49 var_LEN PIC 9(4) USAGE COMP. 49 var_TEXT PIC N(n).4
struct {short int var_len; char var_data[147]; } var;
01 var. 49 var_LEN PIC S9(4) COMP. 49 var_TEXT PIC X(147).
struct {short int var_len; char var_data[148 + p]; } var;
01 var. 49 var_LEN PIC S9(4) COMP. 49 var_TEXT PIC X(148 + p).
Exemplo de Dclgen: ****************************************************************** * DCLGEN TABLE(DB2.SAGTBS02_CURSOS) * * LIBRARY(DES.DB2.DCLGEN(SAGTBS02)) * * ACTION(REPLACE) * * LANGUAGE(COBOL) * * STRUCTURE(SAGTBS02) * * APOST * * ... IS THE DCLGEN COMMAND THAT MADE THE FOLLOWING STATEMENTS * ****************************************************************** EXEC SQL DECLARE DB2.SAGTBS02_CURSOS TABLE ( CO_CURSO INTEGER NOT NULL, NO_CURSO CHAR(25) NOT NULL, DT_INCLUSAO DATE NOT NULL, DT_ALTERACAO DATE, DT_EXCLUSAO DATE, NO_TOPICO CHAR(15) NOT NULL, NO_NIVEL CHAR(15) NOT NULL, NO_OBJETIVO VARCHAR(150), NO_DESTINA_SE CHAR(70) NOT NULL, NO_PRE_REQUIS CHAR(70) NOT NULL, NU_CARGA_HORA INTEGER NOT NULL, IC_SEG CHAR(1), IC_TER CHAR(1), IC_QUA CHAR(1), IC_QUI CHAR(1), IC_SEX CHAR(1), IC_SAB CHAR(1), IC_DOM CHAR(1), DT_INICIO DATE NOT NULL, DT_FIM DATE NOT NULL, NO_ANDAMENTO CHAR(35), VR_CURSO_1 DECIMAL(15, 2) NOT NULL, VR_CURSO_2 DECIMAL(15, 2) NOT NULL, VR_CURSO_3 DECIMAL(15, 2) NOT NULL, IC_SITUACAO CHAR(1) ) END-EXEC. ****************************************************************** * COBOL DECLARATION FOR TABLE DB2.SAGTBS02_CURSOS * ****************************************************************** 01 SAGTBS02. 10 CO-CURSO PIC S9(9) USAGE COMP. 10 NO-CURSO PIC X(25). 10 DT-INCLUSAO PIC X(10). 10 DT-ALTERACAO PIC X(10). 10 DT-EXCLUSAO PIC X(10). 10 NO-TOPICO PIC X(15). 10 NO-NIVEL PIC X(15). 10 NO-OBJETIVO. 49 NO-OBJETIVO-LEN PIC S9(4) USAGE COMP. 49 NO-OBJETIVO-TEXT PIC X(150). 10 NO-DESTINA-SE PIC X(70). 10 NO-PRE-REQUISITOS PIC X(70). 10 NU-CARGA-HORA PIC S9(9) USAGE COMP. 10 IC-SEG PIC X(1). 10 IC-TER PIC X(1). 10 IC-QUA PIC X(1). 10 IC-QUI PIC X(1). 10 IC-SEX PIC X(1). 10 IC-SAB PIC X(1). 10 IC-DOM PIC X(1). 10 DT-INICIO PIC X(10). 10 DT-FIM PIC X(10). 10 NO-ANDAMENTO PIC X(35). 10 VR-CURSO-1 PIC S9(13)V9(2) USAGE COMP-3. 10 VR-CURSO-2 PIC S9(13)V9(2) USAGE COMP-3. 10 VR-CURSO-3 PIC S9(13)V9(2) USAGE COMP-3. 10 IC-SITUACAO PIC X(1). ****************************************************************** * THE NUMBER OF COLUMNS DESCRIBED BY THIS DECLARATION IS 19 * ******************************************************************