Autor
Mensagem
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 := '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.ExecSql;
DM.SQLProdTemp.CommandText := 'update prodtemp set id_vendedor = ' + FloatToStr(i);
DM.SQLProdTemp.ExecSql;
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.ExecSql;
DM.SQLProdTemp.CommandText := 'select * from prodtemp';
DM.SQLProdTemp.ExecSql;
DM.SQLProdTemp.Open;
DM.SQLProdTemp.ExecSql;
DM.SQLProdTemp.Open;
DM.CdsProdTemp.close;
DM.CdsProdTemp.Open;
DM.CdsProdTemp.Open;
O meu erro é na parte do comando update, se alguém puder me ajudar... ficarei muito grato !
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'
'.Process stopped. Use step or Run to continue'
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)
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)
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 ?
Citação:
Emerson... meu banco dados é FIREBIRD ! Eu tentei usar o que você me passou e não deu certo deu o erro
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?
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







