[firebase-br] Ref: SQL com variaveis
Carlos - GMail
krlosgilson em gmail.com
Sex Fev 24 16:25:25 -03 2012
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
Mais detalhes sobre a lista de discussão lista