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