Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
tiago.veras Novato
Registrado: Quinta-Feira, 28 de Agosto de 2014 Mensagens: 81
|
Enviada: Qua Set 03, 2014 8:06 am Assunto: Ajuste de Preços - Update |
|
|
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;
Amigos esse e o meu primeiro post no Active Delphi estou muito feliz.. |
|
Voltar ao Topo |
|
|
joemil Moderador
Registrado: Quinta-Feira, 25 de Março de 2004 Mensagens: 9098 Localização: Sinop-MT
|
Enviada: Qua Set 03, 2014 8:52 am Assunto: |
|
|
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 |
|
|
Ghost_Rider Colaborador
Registrado: Segunda-Feira, 6 de Outubro de 2003 Mensagens: 4437
|
Enviada: Qua Set 03, 2014 8:55 am Assunto: |
|
|
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 |
|
|
tiago.veras Novato
Registrado: Quinta-Feira, 28 de Agosto de 2014 Mensagens: 81
|
Enviada: Qui Set 04, 2014 12:14 am Assunto: Procediemento pela Aplicação X DB |
|
|
Funcionou legal ! Obridado
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 |
|
|
Ghost_Rider Colaborador
Registrado: Segunda-Feira, 6 de Outubro de 2003 Mensagens: 4437
|
Enviada: Qui Set 04, 2014 6:35 am Assunto: |
|
|
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 |
|
|
tiago.veras Novato
Registrado: Quinta-Feira, 28 de Agosto de 2014 Mensagens: 81
|
Enviada: Qui Set 04, 2014 7:26 am Assunto: RESOLVIDO |
|
|
Obrigado a todos... RESOLVIDO |
|
Voltar ao Topo |
|
|
|