[firebase-br] Duvida sobre Trigger
Edinho
ed.rodrigo em gmail.com
Sex Abr 2 00:29:35 -03 2010
Posta o erro quando executa... mas da uma olhada aqui:
SELECT FIRST 1 1 FROM sstock_semillas
WHERE ( sstock_semillas.empresa = new.empresa and
Qual o nome do campo que voce deseja pegar o valor? 1?
tenta algo assim:
SELECT FIRST 1 nome_campo FROM nome_tabela
WHERE sentenca_validacao_logica...
Tá ae a tentativa de ajuda... espero que de certo! Vale lembrar que nao
tenho um vasto conhecimento em firebird/sql... to aprendendo ;) e ajudando.
p.s.: Precisa de tudo isso? Nao entendi onde voce quer chegar... faz uma
trigger AFTER INSERT, se ele ta inserindo um registro novo é pq esse
registro nao existe,,, entao nao ha a necessidade de verificar se existe ou
nao, simplesmente adiciona o registro em outra tabela com uma trigger AFTER
INSERT... isso resolve? Se nao for isso, desculpe :)
Att,
2010/3/31 Paulo Sérgo Feix <paulinhofeix em gmail.com>
> Boa tarde
>
> Preciso de ajuda, tenho que fazer o seguinte uma trigger, quando estiver
> incluindo um registro e este registro for novo ela deve incluir em outra
> tabela de Stock, tentei fazer desta forma mais esta dando erro, segue o
> exemplo:
> AS
> DECLARE VARIABLE Existe smallint ;
> begin
> Existe = 0;
> SELECT FIRST 1 1 FROM sstock_semillas
> WHERE ( sstock_semillas.empresa = new.empresa and
> sstock_semillas.filial = new.filial and
> sstock_semillas.grano = new.granos and
> sstock_semillas.variedade = new.variedade and
> sstock_semillas.id_producto = new.id_producto and
> sstock_semillas.transgenico = new.transgenico and
> sstock_semillas.categoria = new.categoria and
> sstock_semillas.lote = new.lote and
> sstock_semillas.deposito = new.deposito and
> sstock_semillas.bloco = new.bloco and
> sstock_semillas.letras = new.l_letra and
> sstock_semillas.zaranda = new.zaranda )
> INTO :Existe ;
> if ( :Existe = 1 ) then -- existe
> begin
> update sstock_semillas set
> sstock_semillas.stock = sstock_semillas.stock + new.bls_ind,
> sstock_semillas.entrada = sstock_semillas.entrada + new.bls_ind
> where sstock_semillas.empresa = new.empresa and
> sstock_semillas.filial = new.filial and
> sstock_semillas.grano = new.granos and
> sstock_semillas.variedade = new.variedade and
> sstock_semillas.id_producto = new.id_producto and
> sstock_semillas.transgenico = new.transgenico and
> sstock_semillas.categoria = new.categoria and
> sstock_semillas.lote = new.lote and
> sstock_semillas.deposito = new.deposito and
> sstock_semillas.bloco = new.bloco and
> sstock_semillas.letras = new.l_letra and
> sstock_semillas.zaranda = new.zaranda;
> end
> else
> begin -- nao existe
> Insert Into sstock_semillas
> (ID_SEMILLAS, EMPRESA, FILIAL, SILO, GRANO, VARIEDADE, ID_PRODUCTO,
> TRANSGENICO, CATEGORIA, LOTE, DEPOSITO, BLOCO, LETRAS, ZARANDA,
> STOCK, ENTRADA, SAIDA)
> values
> (0, new.empresa, new.filial, new.silo, new.granos, new.variedade,
> new.id_producto,
> new.transgenico, new.categoria, new.lote, new.deposito, new.bloco,
> new.l_letra,
> new.bls_ind, new.bls_ind, 0 );
> end
>
> Onde estou erreado ?
>
> --
> Paulinho Sérgio Feix
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
--
- Éderson R. F. Lima
-- Engenharia da Computação / 9º Termo
--- Araçatuba/SP
Mais detalhes sobre a lista de discussão lista