[firebase-br] Procedure com várias tabelas

Igor Almeida igor.carneiro.almeida em gmail.com
Qua Mar 14 07:47:19 -03 2012


Bom dia Marlon,

Acho que para sua necessidade, você poderia gerar um gatilho(trigger) para
que quando uma tabela fosse populada ou uma procedure tenha alguma
alteração, esta trigger poderia chamar as outras Procedures.

Em 12 de março de 2012 18:37, Marlon ETI <marlon em esferati.com.br> escreveu:

> 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.
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



-- 

Atenciosamente,

Igor Almeida
# 85.87767028
# 85.99825525



Mais detalhes sobre a lista de discussão lista