ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Ajuste de Preços - Update

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Automação Comercial
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
tiago.veras
Novato
Novato


Registrado: Quinta-Feira, 28 de Agosto de 2014
Mensagens: 81

MensagemEnviada: Qua Set 03, 2014 8:06 am    Assunto: Ajuste de Preços - Update Responder com Citação

Estou implementado tela de Ajuste de Preços. Está rodando legal, só tem um porém.. atualiza todos os preços de venda de todos os produtos.
Obs.: gostaria que atualizasse apenas a linha do dbgrid selecionada..

segue codigo do botão atualizar:

procedure TFormAjuste.SbAjustarClick(Sender: TObject);
var
taxa: Double;
staxa: string;
begin
if RbAumenta.Checked then
begin
taxa:= StrToFloat(EditNTaxa.text)/100;
staxa:= Copy(FloatToStr(taxa),3,4);
DMDados.QAtualizaPrecoMy.SQL.Clear;
DMDados.QAtualizaPrecoMy.SQL.Add('UPDATE PRODUTO SET VALORVENDA=VALORVENDA*1.'+staxa);
DMDados.QAtualizaPrecoMy.ExecSQL;
DMDados.QProduto.Close;
DMDados.QProduto.Open;
FormAjuste.SbExcluir.Visible:=True;
FormAjuste.SbExcluirP.Visible:=false;
end;

if RbDiminui.Checked then
begin
taxa:= 100 - StrToFloat(EditNTaxa.Text);
taxa:= taxa / 100;
DMDados.QAtualizaPrecoMy.SQL.Clear;
staxa:= Copy(FloatToStr(taxa),3,4);
DMDados.QAtualizaPrecoMy.SQL.Add('UPDATE PRODUTO SET VALORVENDA=VALORVENDA*0.'+staxa);
DMDados.QAtualizaPrecoMy.ExecSQL;
DMDados.QProduto.Close;
DMDados.QProduto.Open;
FormAjuste.SbExcluir.Visible:=True;
FormAjuste.SbExcluirP.Visible:=false;
end;
end; Question

Amigos esse e o meu primeiro post no Active Delphi estou muito feliz..
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9098
Localização: Sinop-MT

MensagemEnviada: Qua Set 03, 2014 8:52 am    Assunto: Responder com Citação

bem vindo ao forum amigo.

vc deve usar a clausula WHERE no seu SQL.

veja algumas alteracoes no seu codigo:

Código:
procedure TFormAjuste.SbAjustarClick(Sender: TObject);
var
   taxa: Double;
   staxa: string;
begin
   Taxa:= StrToFloat(EditNTaxa.text) / 100;

   if RbAumenta.Checked then
      Taxa:= Taxa + 1
   else
      Taxa := 1 - Taxa;
   
   DMDados.QAtualizaPrecoMy.SQL.Clear;
   DMDados.QAtualizaPrecoMy.SQL.Add('UPDATE produto SET valorvenda = valorvenda * :taxa WHERE cod_produto = ' +
      DMDados.QProdutoCod_Produto.AsString);
   DMDados.QAtualizaPrecoMy.ParamByName('taxa').Value := Taxa;
   DMDados.QAtualizaPrecoMy.ExecSQL;
   DMDados.QProduto.Open;
   FormAjuste.SbExcluir.Visible:=True;
   FormAjuste.SbExcluirP.Visible:=false;
end;

_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/


Editado pela última vez por joemil em Qua Set 03, 2014 8:55 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Qua Set 03, 2014 8:55 am    Assunto: Responder com Citação

Observe essa linha

DMDados.QAtualizaPrecoMy.SQL.Add('UPDATE PRODUTO SET VALORVENDA=VALORVENDA*1.'+staxa);

Nessa linha vc não especifica qual produto quer atualizar, por isso que esta desse jeito, aqui nessa linha tem que adicionar um where informando o código do produto que quer alterar.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
tiago.veras
Novato
Novato


Registrado: Quinta-Feira, 28 de Agosto de 2014
Mensagens: 81

MensagemEnviada: Qui Set 04, 2014 12:14 am    Assunto: Procediemento pela Aplicação X DB Responder com Citação

Funcionou legal ! Obridado Smile

Agora me diz uma coisa.... acha melhor fazer esse procedimento pelo Delphi mesmo ou com uma trigger no DB? Estou usando MySQL e Firebird
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Ghost_Rider
Colaborador
Colaborador


Registrado: Segunda-Feira, 6 de Outubro de 2003
Mensagens: 4437

MensagemEnviada: Qui Set 04, 2014 6:35 am    Assunto: Responder com Citação

Minha opinião é dura, mas honesta...se apanhou com esse código, esquece trigger amigo, é bonito, é rápido, tecnicamente fica melhor, mas domina SQL direito, domina logica direito, e quando tiver uma aplicação parruda, dai parte pra uma coisa mais complexa...

Abraço...
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
tiago.veras
Novato
Novato


Registrado: Quinta-Feira, 28 de Agosto de 2014
Mensagens: 81

MensagemEnviada: Qui Set 04, 2014 7:26 am    Assunto: RESOLVIDO Responder com Citação

Obrigado a todos... RESOLVIDO
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Automação Comercial Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB