[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