[firebase-br] Procedure com várias tabelas

Marlon ETI marlon em esferati.com.br
Seg Mar 12 18:37:32 -03 2012


Boa noite senhores,

Tenho uma estrutura de banco com as seguintes tabelas

CREATE TABLE TB_ASSOCIADO (
    ID_ASSOCIADO            DM_KEY NOT NULL /* DM_KEY = INTEGER NOT NULL
CHECK (VALUE > 0) */,
    NU_CONTRATO             DM_CONTRATO /* DM_CONTRATO = CHAR(15) NOT NULL
CHECK (VALUE <> '') */,
    NO_ASSOCIADO            DM_NOME /* DM_NOME = VARCHAR(150) NOT NULL
CHECK (VALUE <> '') */,
    DT_NASCIMENTO           DM_DATA /* DM_DATA = DATE */,
    NU_IDADE                INTEGER,
    NU_CPF                  DM_CPF NOT NULL /* DM_CPF = CHAR(11) NOT NULL
CHECK (Value <> '') */,
    NU_RG                   VARCHAR(15),
    NO_EMISSOR              VARCHAR(15),
    DT_EMISSAO              DM_DATA /* DM_DATA = DATE */,
    NO_PAI                  DM_NOME COLLATE PT_BR /* DM_NOME = VARCHAR(150)
NOT NULL CHECK (VALUE <> '') */,
    NO_MAE                  DM_NOME COLLATE PT_BR /* DM_NOME = VARCHAR(150)
NOT NULL CHECK (VALUE <> '') */,
    ID_SEXO                 DM_KEY /* DM_KEY = INTEGER NOT NULL CHECK
(VALUE > 0) */,
    ID_ESTADO_CIVIL         DM_KEY /* DM_KEY = INTEGER NOT NULL CHECK
(VALUE > 0) */,
    ID_ASSOCIADO_CATEGORIA  DM_KEY /* DM_KEY = INTEGER NOT NULL CHECK
(VALUE > 0) */,
    ID_ASSOCIADO_SITUACAO   DM_KEY /* DM_KEY = INTEGER NOT NULL CHECK
(VALUE > 0) */,
    DT_ADESAO               DM_DATA /* DM_DATA = DATE */,
    DT_CADASTRO             DM_DATA /* DM_DATA = DATE */,
    DT_CANCELAMENTO         DM_DATA /* DM_DATA = DATE */,
    DT_REATIVACAO           DM_DATA /* DM_DATA = DATE */,
    DT_ATUALIZACAO          DM_DATA /* DM_DATA = DATE */,
    DS_CONFIRMADO           DM_BOOLEAN /* DM_BOOLEAN = CHAR(1) NOT NULL
CHECK (VALUE in ('T','F')) */
);
CREATE TABLE TB_ASSOCIADO_ENDERECO (
    ID_ASSOCIADO    DM_KEY NOT NULL /* DM_KEY = INTEGER NOT NULL CHECK
(VALUE > 0) */,
    TP_ENDERECO     DM_TP_ENDERECO NOT NULL /* DM_TP_ENDERECO = CHAR(1) NOT
NULL CHECK (VALUE in ('C', 'R')) */,
    NU_CEP          DM_CEP /* DM_CEP = CHAR(8) */,
    NO_ENDERECO     VARCHAR(100) COLLATE PT_BR,
    NU_ENDERECO     DM_TXT_10 /* DM_TXT_10 = VARCHAR(10) */,
    NO_COMPLEMENTO  DM_TXT_30 /* DM_TXT_30 = VARCHAR(30) */,
    NO_BAIRRO       DM_TXT_30 /* DM_TXT_30 = VARCHAR(30) */,
    NO_CIDADE       DM_TXT_30 /* DM_TXT_30 = VARCHAR(30) */,
    NO_ESTADO       DM_UF /* DM_UF = CHAR(2) */,
    DS_EMAIL        DM_EMAIL /* DM_EMAIL = VARCHAR(60) */,
    NU_TEL1         DM_TELEFONE /* DM_TELEFONE = CHAR(13) */,
    NU_TEL2         DM_TELEFONE /* DM_TELEFONE = CHAR(13) */,
    NU_TEL3         DM_TELEFONE /* DM_TELEFONE = CHAR(13) */,
    NU_TEL4         DM_TELEFONE /* DM_TELEFONE = CHAR(13) */
);
CREATE TABLE TB_ASSOCIADO_BANCO (
    ID_ASSOCIADO  DM_KEY /* DM_KEY = INTEGER NOT NULL CHECK (VALUE > 0) */,
    ID_BANCO      DM_KEY /* DM_KEY = INTEGER NOT NULL CHECK (VALUE > 0) */,
    NU_AGENCIA    CHAR(4),
    DV_AGENCIA    CHAR(1),
    NU_CONTA      VARCHAR(10),
    DV_CONTA      CHAR(1)
);
CREATE TABLE TB_ASSOCIADO_COMERCIAL (
    ID_ASSOCIADO         DM_KEY /* DM_KEY = INTEGER NOT NULL CHECK (VALUE >
0) */,
    ID_ORGAO             DM_KEY /* DM_KEY = INTEGER NOT NULL CHECK (VALUE >
0) */,
    ID_UPAG              DM_KEY /* DM_KEY = INTEGER NOT NULL CHECK (VALUE >
0) */,
    NU_MATRICULA         DM_TXT_10 /* DM_TXT_10 = VARCHAR(10) */,
    NO_OCUPACAO          DM_TXT_50 /* DM_TXT_50 = VARCHAR(50) */,
    ID_GRUPO_FINANCEIRO  DM_KEY /* DM_KEY = INTEGER NOT NULL CHECK (VALUE >
0) */
);

Entre outras tabelas. No tentando estou tentando criar uma procedure para
inserção e atualização no momento do cadastro do associado. Utilizo como
frontend do firebird a ferramenta ibexpert, onde consigo criar
automaticamente procedure de insert/update para cada tabela
individualmente. como consigo unir todas em uma única procedure ou como
faço para criar uma procedure que chame todas as outras dentro dela?

Grato desde já pela ajuda.


-- 
Marlon Conceição
Analista de Sistemas
Esfera TI - Soluções Simples e Completas

Favor levar em conta o meio-ambiente antes de imprimir este e-mail.
Por favor tenga en cuenta el medioambiente antes de imprimir este e-mail.
Please consider your environmental responsibility before printing this
e-mail.



Mais detalhes sobre a lista de discussão lista