[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