Tratamento de campo chave primária

Firebird

06/01/2004

Senhores !!!

Como faria no interbase para tratar um campo sendo ele chave primária quando for feito a gravação, para evitar uma violação de chave..



Rogério


Rogeranalista

Rogeranalista

Curtidas 0

Respostas

Afarias

Afarias

06/01/2004

|Como faria no interbase para tratar um campo sendo ele chave primária
|quando for feito a gravação, para evitar uma violação de chave..

Não entendi bem... Para tratar o erro gerado pelo IB vc deve usar blocos try/except. Para evitar violação, vc deve ter cuidado de nunca inserir valores repetidos.


T+


GOSTEI 0
Sremulador

Sremulador

06/01/2004

Amigo você poderia usar os gatilhos do banco de dados por exemplo

/*cria o gatilho*/
CREATE TRIGGER AI_CENTRODECUSTO_CCCD FOR CENTRODECUSTO
/*ativa*/
ACTIVE
/*caso o registro seja inserido*/
BEFORE INSERT POSITION 0
AS
BEGIN
/* se caso o registro inserido seja nulo*/
IF (NEW.CCCD IS NULL) THEN
NEW.CCCD = GEN_ID(CENTRODECUSTO_CCCD, 1);
/*insere o cod do gerador e adiciona + 1 ao gerador
END

Para criar o gerador
CREATE GENERATOR ´new_generator´

isso evitara que ocorra os key violations


GOSTEI 0
POSTAR