[firebase-br] Modelar procedimento para inserir dados em tabelas

Joao Batista Santos mrjbs em ig.com.br
Seg Jan 26 22:49:47 -03 2009


Opa Marcelo, boa noite
Tenho as mesmas dúvidas q a sua: mais ainda:

1) Qual a versão do FB ?
2) Vc. desenvolve em que plataforma ?
Acho q temos o mesmo trabalho:

To fazendo algo bem parecido com duas tabelas:
Master e Details

Tenho duas funções: InsertMaster e InsertItens na mesma
Classe e duas variáveis públlicas (m_ID e m_Doc ) que armazenam: ID e
NroDocumento
Antes de disparar a primeira pego os proximos nros

strSQL = "SELECT gen_id(GEN_TBNF_ID,1) as m_ID from RDB$DATABASE"
strSQL = "SELECT gen_id(GEN_TBNF_DOC,1) as m_Doc from RDB$DATABASE"
Gravo a Master e ao gravar os itens utilizo o m_ID gravado também na master

Já postei essa dúvida tb, mas acho q para o FB 1.5 é assim mesmo

"Se vc descobrir alguma coisa melhor estarei "na escuta" "

Att.
João Batista
Desenvolvimento em VB6 e .NET com Firebird 1.5



2009/1/26 Marcelo Geyer <estanisgeyer em gmail.com>

> Boa tarde, amigos...
>
> Preciso trocar uma idéia de como melhorar o procedimento de inserção de
> registros no banco de dados.
> Tomando como exemplo, tenho 3 tabelas: NF, PRODUTOS, ENTREGA.
> Todas as tabelas tem dois campos em comum: ID e NRO_NF.
> Ao executar uma transação, é inserido um registro nestas três tabelas. Um
> SELECT pega um número do "generator" para alimentar o ID nestas três
> tabelas, e ao final, se tudo der certo, é disparado uma procedure para
> pegar
> o próximo número da NF disponível e atualizado o campo NRO_NF nas três
> tabelas, com base no ID, caso contrário é feito um rollback.
> O que vocês me recomendam para sair desta rotina e descomplicar as coisas?
>
> Abraços,
>
> Marcelo E. Geyer
> ______________________________________________
> 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
>



Mais detalhes sobre a lista de discussão lista