Ir para conteúdo
  • Cadastre-se

dev botao

Execute Block no delphi


  • Este tópico foi criado há 1031 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Bom dia! Eu ainda não consegui entender como coloco um parâmetro em uma query no delphi para executar o comando:
Gostaria de passar a data para executar o comando. Obg.

Execute Block (dtvencto timestamp = ?data)
as
begin
    Update Titulo_Receber Set   vlr_multa = Case When dt_vencto < Cast(:dtvencto as date) Then (vlr_nominal - Coalesce(vlr_desc,0)) * (Select First 1 coalesce(l.pct_multa,0) From Loja l Where Titulo_Receber.cd_emp = l.cd_emp and Titulo_Receber.cd_loja = l.cd_loja)/100 Else 0 End,
                                pct_juros = (Select first 1 l.pct_juros_mes From Loja l Where Titulo_Receber.cd_emp = l.cd_emp and Titulo_Receber.cd_loja = l.cd_loja),
                                vlr_juros = (vlr_nominal - Coalesce(vlr_desc,0)) * ((((Select First 1 l.pct_juros_mes From Loja l Where Titulo_Receber.cd_emp = l.cd_emp and Titulo_Receber.cd_loja = l.cd_loja)/30)/100) * (Cast(:dtvencto as date) - Cast(dt_vencto as date)))
    Where   cd_emp > 0
    and     cd_loja > 0
    and     status = 'A'
    and     dt_vencto <= Cast(:dtvencto as date)
    and     dt_vencto <= cast(current_timestamp as date);
    
    Update Titulo_Receber Set   vlr_saldo = vlr_nominal - Coalesce(vlr_pago,0) - Coalesce(vlr_desc,0) + Coalesce(vlr_multa,0) + Coalesce(vlr_juros,0)
    Where   cd_emp > 0
    and     cd_loja > 0
    and     status = 'A'
    and     dt_vencto <= Cast(:dtvencto as date)
    and     dt_vencto <= cast(current_timestamp as date);

end;
 

Link para o comentário
Compartilhar em outros sites

1 hora atrás, Rodrigo Cunha disse:

Execute Block (dtvencto timestamp = ?data)

dbexpress não sei mas com firedac usa assim:

Execute Block (dtvencto timestamp = :data)
update tabela set campo=:dtvencto
...


fdquery.ParamByName('data').AsDateTime := Now;
fdquery.ExecSQL;

no zeosdbo usa assim:
Execute Block (dtvencto timestamp = &data)
update tabela set campo=:dtvencto
...

ZQuery1.ParamChar:='&';
ZQuery1.ParamCheck:=False;
ZQuery1.ParamByName('data').AsDateTime := Now;
ZQuery1.ExecSQL;

  • Curtir 2
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • 4 semanas depois ...
  • Consultores
Em 07/05/2021 at 07:55, Rodrigo Cunha disse:

entender como coloco um parâmetro em uma query

Em 07/05/2021 at 08:45, Rodrigo Cunha disse:

Eu estou usando delphi 7 com dbexpress. Pode ser isso? tem alguma forma?

Até onde me lembro, você só precisa usar componente de script e não query. Daí é fazer como citado pelo @datilas acima

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1031 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...