[firebase-br] Ref: SQL com variaveis

samuel ferreira samuel.peres.ferreira em gmail.com
Sex Fev 24 16:44:57 -03 2012


uma outra alternativa, caso o 'NumeroDav' for fk e exister integridade
referencial, com 'delete cascade', é só excluir da tabela principal, que as
demais tabelas serão excluidas.

Em 24 de fevereiro de 2012 16:25, Carlos - GMail
<krlosgilson em gmail.com>escreveu:

> Poderia criar uma "Stored Procedure" para executar estes Delete's:
>
> set term ^;
>
> create or alter procedure SP_DELETAR(
> pNumero_DAV integer)
> as
> begin
>  delete from DAV_PARCELAS Where DAV_CODIGO = :pNumero_DAV;
>  delete from DAV_CONDICAO Where DAV_CODIGO = :pNumero_DAV;
>  delete from DAV_PARCELAS Where DAV_CODIGO = :pNumero_DAV;
>  delete from ITEM_DAV Where DAV_CODIGO = :pNumero_DAV;
>  delete from DAV_CUPOM Where DAV_CODIGO = :pNumero_DAV;
>  delete from DAV Where DAV_CODIGO = :pNumero_DAV;
> end^
>
> set term ;^
>
>
> Para executar a procedure utilize a instrução Sql abaixo:
>
> execute procedure SP_DELETAR(:pNumero_DAV);
>
> Obs: Informe o valor para o parâmetro pNumero_DAV antes de executar a
> Procedure.
>
> Percebi que vc quer deletar primeiramente registros das tabelas
> relacionadas para depois excluir o registro da tabela principal, ao invés
> disso vc poderia criar uma FOREIGN KEY com Cascade DELETE em cada tabela
> relacionada vinculando à tabela principal, sendo assim bastava dar o
> comando DELETE na tabela principal.
>
> Espero ter ajudado!
>
>> Boa tarde, Sr.
>>
>> Estou com uma dúvida, sobre como seria o SQL para esta sentença SQL usar
>> uma variável local, aonde eu definiria um valor que quero excluir
>>
>> Como poderia ser no Firebird ?
>>
>> Tentei:
>>
>> Declare variable pnumeroDAV;
>>
>>
>> Delete from DAV_PARCELAS Where DAV_CODIGO = :pNumero_DAV;
>> Delete from DAV_CONDICAO Where DAV_CODIGO = :pNumero_DAV;
>> Delete from DAV_PARCELAS Where DAV_CODIGO = :pNumero_DAV;
>> Delete from ITEM_DAV Where DAV_CODIGO = :pNumero_DAV;
>> Delete from DAV_CUPOM Where DAV_CODIGO = :pNumero_DAV;
>> Delete from DAV Where DAV_CODIGO = :pNumero_DAV;
>> E ele recusou. Qual seria a sintaxe mais adequada, para que cada sentença
>> SQL acima considere o valor contido na variável pNumeroDAV
>>
>> Obrigado a todos
>>
>> -- Att. Omar Marques Haddad Analista de Sistemas Sênior
>>
>
> ______________________________________________
> 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
>



-- 
     Samuel



Mais detalhes sobre a lista de discussão lista