Valdir, Tive uma situação parecida com a sua e resolvi criando um procedure. Veja o código abaixo:
SET TERM ^ ; CREATE OR ALTER PROCEDURE GEN_EMPRESA ( cod integer = 1) as declare variable qtd integer = 0; begin select count(RDB$GENERATOR_NAME) from RDB$GENERATORS where RDB$GENERATOR_NAME='GEN_EMPRESA_'||:COD into :qtd; if (qtd<1) then begin INSERT INTO RDB$GENERATORS (RDB$GENERATOR_NAME) VALUES ('GEN_EMPRESA_'||:COD); end end^ SET TERM ; ^ No programa vc chama assim (no meu caso): With DM.qryGeral do begin Close; SQL.Text := 'EXECUTE PROCEDURE GEN_EMPRESA('+IntToStr(G_CODEMPRESA)+')'; ExecSQL; Close; end; Sucesso !! Moacir valdirdill escreveu: > Olá, > > Há muito venho adiando isso, mas agora preciso "colocar a mão na massa". > Estou trabalhando no projeto para transformar um sistema - que já está em > utilização - para que possa ser controlar duas ou mais empresas no mesmo bd. > O que defini até agora é que vou manter os cadastros de produtos, clientes e > fornecedores públicos (acessível a todas as filiais). Nas demais tabelas > criarei o ID_Filial e, nos registros existentes até o momento dessa > implantação receberão valor 1 nesse campo. A partir da implantação da nova > sistemática, esse campo receberá valor conforme a filial que estiver ativa, o > que é definido no login ao sistema. > Muito bem, até aqui me parece que a coisa, apesar de ser trabalhosa, não é lá > muito complexa. > Porém, encontrei uma dificuldade: em tenho alguns generators no banco que são > utilizados para gerar um código único para determinadas tabelas que não > possuem um campo específico para isso. Por exemplo, na tabela de lançamentos > do livro caixa utilizo um generator para que a cada novo lançamento o campo > código - que é o campo chave - dessa tabela receba o valor do > generator_Caixa, já incrementado em 1. > A dúvida: no caso da segunda, terceira, ..., filiais, como isso poderia ser > feito? Não posso utilizar o mesmo generator. Então, cada vez que o usuário > cadastrar uma nova filial devo criar um generator com o nome ou código dela? > Tipo generator_Caixa_Filial_2? > > Consegui me fazer entender? > Alguém pode me auxiliar com alguma dica? > > Obrigado. > > > > ------------------------------------ > >