DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Fórum DevMedia


Autor
Mensagem
Riatla
 

País: Brasil
Estado: RJ
Cidade: Barra do Piraí
Mensagens: 24
 Postado em: 11/6/2010 2:47:30 PM

Aê galera estou com um erro no meu programa, quejá esta me tirando do sério
estou tentanto fazer um update junto com um select mas não esta dando certo... o erro que dá é que ele não acha a parte do select...
vou mandar o comando qu eu faço desde o inicio....
 
 
  DM.SQLProdTemp.Close;
  DM.SQLProdTemp.CommandText := 'delete from prodtemp';
  DM.SQLProdTemp.Execsql;
 
  DM.SQLProdTemp.CommandText := 'insert into prodtemp (id_produto, des_produto, prc_vnd) select id_produto, des_produto, prc_vnd from produtos';
  DM.SQLProdTemp.ExecSql;
 
  DM.SQLProdTemp.CommandText := 'update prodtemp set id_vendedor = ' + FloatToStr(i);
  DM.SQLProdTemp.ExecSql;
 
  DM.SQLProdTemp.CommandText := 'update PT set prc_vnd_vendedor = Vp.prc_vnd select PT.id_produto, PT.id_vendedor, PT.prc_vnd_vendedor, Vp.prc_vnd from prodtemp PT, vendedor_produtos Vp where (PT.id_vendedor = Vp.id_vendedor and PT.id_produto = Vp.id_produto';
  DM.SQLProdTemp.ExecSql;
 
  DM.SQLProdTemp.CommandText := 'select * from prodtemp';
  DM.SQLProdTemp.ExecSql;
  DM.SQLProdTemp.Open;
 
  DM.CdsProdTemp.close;
  DM.CdsProdTemp.Open;
 
O meu erro é na parte do comando update, se alguém puder me ajudar... ficarei muito grato !
Emerson
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 11/6/2010 3:19:29 PM
como você não disse qual o banco de dados usado nem qual o erro apresentado, avaliando somente o código passado suponho que haja um erro no segundo update: logo após o where é aberto um parêntesis que não é fechado.

 
Riatla
 

País: Brasil
Estado: RJ
Cidade: Barra do Piraí
Mensagens: 24
 Postado em: 11/6/2010 3:37:42 PM

Desculpe.. eu esqueci de colocar o parentesis  mas o erro continua aparecendo

o meu banco de dados é GDB.. o erro apresentado é esse
 
'Project Cartão.exe raised exception class EDATABASEERRO'R with message 'token unknown - line 1, column 45 select
'.Process stopped. Use step or Run to continue'
 

 
Emerson
 
 


País: Brasil
Estado: SP
Cidade: São Paulo
Mensagens: 938
 Postado em: 11/6/2010 4:52:08 PM
olha, não sei qual banco de dados você está utilizando (Firebird?, Interbase?), mas não sei se essa sintaxe é permitida.

no SQL Server é possível fazer algo do tipo, mas não tem a parte do select, só a partir do from. assim:

update PT set PT.prc_vnd_vendedor = Vp.prc_vnd
from prodtemp PT, vendedor_produtos Vp
where (PT.id_vendedor = Vp.id_vendedor and PT.id_produto = Vp.id_produto)



 
Riatla
 

País: Brasil
Estado: RJ
Cidade: Barra do Piraí
Mensagens: 24
 Postado em: 11/6/2010 5:20:29 PM
Emerson... meu banco dados é FIREBIRD !
Eu tentei usar o que você me passou e não deu certo deu o erro
 
Project Cartão.exe raised exception class EDATABASEERROR with message 'token unknown - line 1, column 48 from
'.Process stopped
 
acha que o  firebird não aceita aquela minha sintaxe ?

 
Riatla
 

País: Brasil
Estado: RJ
Cidade: Barra do Piraí
Mensagens: 24
 Postado em: 16/6/2010 10:57:35 AM

Citação:
Emerson... meu banco dados é FIREBIRD !
Eu tentei usar o que você me passou e não deu certo deu o erro
 
Project Cartão.exe raised exception class EDATABASEERROR with message 'token unknown - line 1, column 48 from
'.Process stopped
 
acha que o  firebird não aceita aquela minha sintaxe ?
 estou fazendo algo de errado?

 
Riatla
 

País: Brasil
Estado: RJ
Cidade: Barra do Piraí
Mensagens: 24
 Postado em: 17/6/2010 11:35:03 AM
Aê galera já consegui resolver o problema
usei essa linha de comando aqui e deu certo
 
update PRODTEMP set prc_vnd_vendedor = (select first 1 VP.prc_vnd from vendedor_produtos VP where (Prodtemp.id_vendedor = VP.id_vendedor and Prodtemp.id_produto = VP.id_produto)) 
 
 
valeu pela ajuda aê !
um abraço e até a próxima

 
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03