[firebase-br] Procedure que gera Generator e Trigger paraautonumeracao

Eder Ribeiro baraomelao em yahoo.com.br
Ter Nov 16 15:46:51 -03 2004


André,

    O seu problema é que não é possível executar comandos DDL em stored
procedures.

Eder Ribeiro.


----- Original Message ----- 
From: "André" <colosso0 em yahoo.com.br>
To: "Lista Firebird" <Lista em firebase.com.br>
Sent: Monday, November 15, 2004 6:41 PM
Subject: [firebase-br] Procedure que gera Generator e Trigger
paraautonumeracao


Oi Pessoal,

Estou tentando gerar uma procedure que gera um
generator e uma trigger Before Insert para campos
autonumeracao. Ela está sendo criada sem problemas, no
entanto quando executo está dando erro.

Estou chamando a procedure da seguinte forma:
EXECUTE PROCEDURE "SP_Autonum"('Teste','Teste');

Abaixo segue a procedure:

SET TERM !!;
CREATE PROCEDURE "SP_Autonum"(Tabela varchar(30),
Campo VARCHAR(30) )
AS
DECLARE VARIABLE NOME_GENERATOR VARCHAR(100);
DECLARE VARIABLE TEXTO VARCHAR(4000);
BEGIN
NOME_GENERATOR  = '"GN_' || :Tabela || '_' || :Campo
|| '"';
TEXTO = 'CREATE GENERATOR ' || NOME_GENERATOR;
EXECUTE STATEMENT TEXTO;

TEXTO = TEXTO || 'CREATE TRIGGER "TR_' || :Tabela ||
'_BI_Autonum" FOR ' || :Tabela || '" BEFORE INSERT
POSITION 0 AS ';
TEXTO = TEXTO || 'BEGIN';
TEXTO = TEXTO || ' NEW."' || :Campo || '" = GEN_ID('
|| NOME_GENERATOR || ',1);';
TEXTO = TEXTO || 'END;';
EXECUTE STATEMENT TEXTO;
END;!!
SET TERM ;!!


Desde já, agradeco qualquer ajuda

Andre





_______________________________________________________
Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora!
http://br.acesso.yahoo.com/

______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
Para editar sua configuração na lista, use o endereço
http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br

__________ NOD32 1.923 (20041115) Information __________

This message was checked by NOD32 antivirus system.
http://www.nod32.com






Mais detalhes sobre a lista de discussão lista