| Exibir mensagem anterior :: Exibir próxima mensagem | 
	
	
		| Autor | Mensagem | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 | 
			
				|  Enviada: Ter Jan 17, 2017 2:04 pm    Assunto: Postgres erro: operator does not exist: numeric + money. |   |  
				| 
 |  
				| Estou tentando executar um select e não consigo 
  	  | Código: |  	  | procedure TdmCadastros.DM_ajustaPrecoProduto(idClassificacao: Integer; vValor: Currency);
 begin
 with QryAux do
 begin
 Close;
 SQL.Clear;
 SQL.Text :=
 ' UPDATE PRODUTO '+
 '    SET CUSTO = P.CUSTO + :pValor '+
 '   FROM PRODUTO P   '+
 '  INNER JOIN CLASSIFICACAO C '+
 '     ON P.ID_CLASSIFICACAO = C.ID '+
 '  WHERE P.ID = :pidClassificacao ';
 ParamByName('pValor').AsCurrency := vValor;
 ParamByName('pidClassificacao').AsInteger := idClassificacao;
 Open;
 end;
 end;
 | 
 
 Aparece o erro
 
   
 Uso o firedac com postgreSQL
 _________________
 Jogo seu smartphone? Acesse o link e confira.
 https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
 https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| imex Moderador
 
  
 
 Registrado: Sexta-Feira, 7 de Janeiro de 2011
 Mensagens: 11666
 
 
 | 
			
				|  Enviada: Ter Jan 17, 2017 4:24 pm    Assunto: |   |  
				| 
 |  
				| Boa tarde, 
 Não tenho nenhuma experiência com o PostgreSQL, mas pelo que vi achei estranha a sintaxe do comando que você postou.
 O que você pretende fazer com esse comando?
 Será que a tabela CLASSIFICACAO é necessária no comando, já que pelo que entendi os campos da mesma não são utilizados na alteração?
 E me parece que ao colocar a tabela PRODUTO novamente após o From (já está após o Update) é feito um Join dela com ela mesma.
 
 Editado pela última vez por imex em Dom Out 01, 2023 4:05 pm, num total de 1 vez
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 | 
			
				|  Enviada: Ter Jan 17, 2017 5:16 pm    Assunto: |   |  
				| 
 |  
				|  	  | imex escreveu: |  	  | Boa tarde, 
 Não tenho nenhuma experiência com o PostgreSQL, mas pelo que vi achei estranha a sintaxe do comando que você postou.
 O que você pretende fazer com esse comando?
 Será que a tabela CLASSIFICACAO é necessária no comando, já que pelo que entendi os campos da mesma não são utilizados na alteração?
 E me parece que ao colocar a tabela PRODUTO novamente após o From (já está após o Update) é feito um Join dela com ela mesma.
 
 | 
 
 Então Imex me passaram para fazer esta sintaxe ai, mais pensando bem não é necessário mesmo
 
 Outra coisa errei no where nao é p.id é p.id_classificacao
 
 Acho que o correto é assim
 
  	  | Código: |  	  | UPDATE PRODUTO SET CUSTO = CUSTO + 50.00
 WHERE ID_CLASSIFICACAO = 17
 
 | 
 
 Mais o erro continua a aparecer.
 _________________
 Jogo seu smartphone? Acesse o link e confira.
 https://play.google.com/store/apps/details?id=br.com.couldsys.rockdrum
 https://play.google.com/store/apps/details?id=br.com.couldsys.drumsetfree
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| imex Moderador
 
  
 
 Registrado: Sexta-Feira, 7 de Janeiro de 2011
 Mensagens: 11666
 
 
 | 
			
				|  Enviada: Ter Jan 17, 2017 5:38 pm    Assunto: |   |  
				| 
 |  
				| Esse erro está ocorrendo mesmo sem os parâmetros? Se estiver ocorrendo só com os parâmetros experimente fazer um teste utlizando AsFloat com o pValor em vez de AsCurrency.
 
 Espero que ajude
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| imex Moderador
 
  
 
 Registrado: Sexta-Feira, 7 de Janeiro de 2011
 Mensagens: 11666
 
 
 | 
			
				|  Enviada: Ter Jan 17, 2017 7:16 pm    Assunto: |   |  
				| 
 |  
				| Tente trocar o Open por ExecSQL. 
 Espero que ajude
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		| adriano_servitec Colaborador
 
  
 
 Registrado: Sexta-Feira, 30 de Janeiro de 2004
 Mensagens: 17618
 
 
 |  | 
	
		| Voltar ao Topo |  | 
	
		|  | 
	
		|  |