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