[firebase-br] Ref: SQL com variaveis

samuel ferreira samuel.peres.ferreira em gmail.com
Sex Fev 24 16:45:50 -03 2012


me expressei mal, o correto é 'numerodav' for pk ou fazer parte da pk.


Em 24 de fevereiro de 2012 16:44, samuel ferreira <
samuel.peres.ferreira em gmail.com> escreveu:

> 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
>




-- 
     Samuel



Mais detalhes sobre a lista de discussão lista