Pegar valor de Generator dinamicamente
Olá amigos,
Dentro das minhas storeds eu pego normalmente o valor do generator assim:
Funciona direitinho porém eu preciso que o nome do Generator seja dinamico pois tenho o sistema multiempresa e terei os Generator assim:
SEQ_PEDCOMPRA_EMP1
SEQ_PEDCOMPRA_EMP2
SEQ_PEDCOMPRA_EMP3
Como eu poderia fazer?
Na stored eu recebo o parametro PEMPRESA pra indicar em qual empresa o usuário está trabalhando.
Acho que é algo com EXECUTE PROCEDURE sei lá, mas foge ao meu conhecimento.
Vlw!
Dentro das minhas storeds eu pego normalmente o valor do generator assim:
SELECT GEN_ID(seq_pedcompra,1) FROM RDB$DATABASE INTO :PCODIGO;
Funciona direitinho porém eu preciso que o nome do Generator seja dinamico pois tenho o sistema multiempresa e terei os Generator assim:
SEQ_PEDCOMPRA_EMP1
SEQ_PEDCOMPRA_EMP2
SEQ_PEDCOMPRA_EMP3
Como eu poderia fazer?
Na stored eu recebo o parametro PEMPRESA pra indicar em qual empresa o usuário está trabalhando.
Acho que é algo com EXECUTE PROCEDURE sei lá, mas foge ao meu conhecimento.
Vlw!
Romulocpd
Curtidas 0
Respostas
Armando.boza
28/12/2005
if (PEMPRESA = 1) then begin SELECT GEN_ID(seq_pedcompra_emp1,1) FROM RDB$DATABASE INTO :PCODIGO; end if (PEMPRESA = 2) then begin SELECT GEN_ID(seq_pedcompra_emp2,1) FROM RDB$DATABASE INTO :PCODIGO; end if (PEMPRESA = 3) then begin SELECT GEN_ID(seq_pedcompra_emp3,1) FROM RDB$DATABASE INTO :PCODIGO; end
GOSTEI 0
Romulocpd
28/12/2005
Fala Armando,
Desta forma não me atende. E se eu tiver 10 empresas? E veja, deve ser algo dinamico mesmo pois tenho no meu sistema umas 40 storeds só de inclusao onde eu uso o Generator, daí tenho que fazer isso em todas?
Por isso que perguntei.. de acordo como parametro PEMPRESA eu montaria uma string com o nome do generator e pegava o nome.
Se alguem souber ae!
Vlw!
Desta forma não me atende. E se eu tiver 10 empresas? E veja, deve ser algo dinamico mesmo pois tenho no meu sistema umas 40 storeds só de inclusao onde eu uso o Generator, daí tenho que fazer isso em todas?
Por isso que perguntei.. de acordo como parametro PEMPRESA eu montaria uma string com o nome do generator e pegava o nome.
Se alguem souber ae!
Vlw!
GOSTEI 0
Afarias
28/12/2005
|Dentro das minhas storeds eu pego normalmente o valor do generator
|assim: SELECT GEN_ID(seq_pedcompra,1) FROM RDB$DATABASE
|INTO :PCODIGO;
dentro de um SP ou Trigger vc pode simplificar usando apenas:
PCODIGO = GEN_ID(seq_pedcompra, 1);
|Funciona direitinho porém eu preciso que o nome do Generator seja
|dinamico pois tenho o sistema multiempresa e terei os Generator assim:
vc pode executar um SELECT dinâmico usando EXECUTE STATEMENT (FB 1.5 ou superior), algo como:
EXECUTE STATEMENT ´SELECT GEN_ID(SEQ_PEDCOMPRA_EMP´ ||
:PEMPRESA || ´, 1) FROM RDB$DATABASE´
INTO :PCODIGO ;
T+
|assim: SELECT GEN_ID(seq_pedcompra,1) FROM RDB$DATABASE
|INTO :PCODIGO;
dentro de um SP ou Trigger vc pode simplificar usando apenas:
PCODIGO = GEN_ID(seq_pedcompra, 1);
|Funciona direitinho porém eu preciso que o nome do Generator seja
|dinamico pois tenho o sistema multiempresa e terei os Generator assim:
vc pode executar um SELECT dinâmico usando EXECUTE STATEMENT (FB 1.5 ou superior), algo como:
EXECUTE STATEMENT ´SELECT GEN_ID(SEQ_PEDCOMPRA_EMP´ ||
:PEMPRESA || ´, 1) FROM RDB$DATABASE´
INTO :PCODIGO ;
T+
GOSTEI 0
Romulocpd
28/12/2005
afarias,
Po cara... funcionou perfeitamente!!!
A única coisa é que eu tive que fazer um cast pois ele tava dando problema de type..
Po, exatamente isso que eu queria! Agora fica mole. Na trigger AFTER e BEFORE INSERT da tabela EMPRESA eu controlo a inclusao e exclusao dos Generators!
Vlw kra!!!! T+
Po cara... funcionou perfeitamente!!!
A única coisa é que eu tive que fazer um cast pois ele tava dando problema de type..
EXECUTE STATEMENT ´SELECT CAST(GEN_ID(SEQ_PEDCOMPRA_EMP´ || :PEMPRESA || ´, 1) AS INTEGER) FROM RDB$DATABASE´ INTO :PCODIGO ;
Po, exatamente isso que eu queria! Agora fica mole. Na trigger AFTER e BEFORE INSERT da tabela EMPRESA eu controlo a inclusao e exclusao dos Generators!
Vlw kra!!!! T+
GOSTEI 0