[firebase-br] Triggers - Verificação com problemas...
Francisco Thiago
jeandeadlucky em yahoo.com.br
Sex Out 14 10:01:49 -03 2005
(Desculpem qqr digitacao errada.. tive um problema com a moto que atingiu as
maos)
Pessoal. Preciso de uma sugestão (tenho pedido de mais né?)
No cadastro de enderecos, eu preciso sempre ter pelo menos um que seja de
cobranca (cobranca = 'T')
Entao fiz uma trigger assim:
declare variable V_ENDERECO integer;
begin
V_ENDERECO = 0;
if (new.CEND_COBRANCA = 'T') then
begin
select count(CEND_COBRANCA)
from CAD_ENDERECO
where CAD_ENDERECO.PESS_CODIGO = new.PESS_CODIGO
and CAD_ENDERECO.CEND_CODIGO <> new.CEND_CODIGO
and CAD_ENDERECO.CEND_COBRANCA = 'T'
into :V_ENDERECO;
end
else if (new.CEND_COBRANCA = 'F') then
begin
select count(CEND_COBRANCA)
from CAD_ENDERECO
where CAD_ENDERECO.PESS_CODIGO = new.PESS_CODIGO
and CAD_ENDERECO.CEND_CODIGO <> new.CEND_CODIGO
and CAD_ENDERECO.CEND_COBRANCA = 'T'
into :V_ENDERECO;
end
if ((V_ENDERECO > 0) and (new.CEND_COBRANCA = 'T')) then
exception E_ENDERECO_COBRANCA ;
else if ((V_ENDERECO <= 0) and (new.CEND_COBRANCA = 'F')) then
new.CEND_COBRANCA = 'T';
Até aqui tudo bem, mas quando o usuário (só pra me sacanear) insere nesta
sequencia:
Cobranca = 'F'
Cobranca = 'T'
Dá problema pq ele duplica a informacao. Alguém teria alguma sugestão?
Obrigado
Francisco Thiago de Almeida
Enter & Plug Informática
Divisão: Desenvolvimento e Banco de dados
Franca / SP
msn: thiago em enterplug.com.br
_______________________________________________________
Promoção Yahoo! Acesso Grátis: a cada hora navegada você acumula cupons e concorre a mais de 500 prêmios! Participe! http://yahoo.fbiz.com.br/
Mais detalhes sobre a lista de discussão lista