Inserir Autoincremento em outra tabela....
Awe.....
Galera preciso novamente da ajuda de vcs!!!!
Tenho Uma Tabela chamado ROMANEIO, ela tem um campo chamado ID_ROMANEIO, esse campo eh autoincremento...até ai tudo bem, ele gera o número e etc...
Eu tenho outra tabela, chamada ENCOMENDAS, ela possui um campo chamado ROMANEIO.
Eu preciso gerar um número para o ID_ROMANEIO e ´jogar´ esse número no campo ROMANEIO de algumas encomendas, algumas nem todas, ai vcs me falam, gera pega o número, vai na tela de cadastro e coloca no campo....não eu naum qro isso, eu qro fazer isso apenas clicando em um botão!!!!
Entaum pensei nesse código:
Só q ele me retorna o erro Cursor not returned from query....
Alguém sabe como resolver? ou tem uma forma melhor para resolver isso?????
Utilizo Firebird e DBExpress...
Agradeço desde já, obrigado!!!!!!!!!
Galera preciso novamente da ajuda de vcs!!!!
Tenho Uma Tabela chamado ROMANEIO, ela tem um campo chamado ID_ROMANEIO, esse campo eh autoincremento...até ai tudo bem, ele gera o número e etc...
Eu tenho outra tabela, chamada ENCOMENDAS, ela possui um campo chamado ROMANEIO.
Eu preciso gerar um número para o ID_ROMANEIO e ´jogar´ esse número no campo ROMANEIO de algumas encomendas, algumas nem todas, ai vcs me falam, gera pega o número, vai na tela de cadastro e coloca no campo....não eu naum qro isso, eu qro fazer isso apenas clicando em um botão!!!!
Entaum pensei nesse código:
with DM.qry do begin Close; SQL.Clear; SQL.Add (´Update encomendas´); SQL.Add (´set Romaneio = :roman where ID_ENCOMENDA = :encomenda´); Params[0].AsInteger := StrtoInt(Edit1.Text); Params[1].AsInteger := StrtoInt(Edit2.Text); ExecSQL; Open; Close; SQL.Add (´select * from encomendas where Romaneio = :roman´); Params[0].AsInteger := StrtoInt(Edit2.Text); ExecSQL;
Só q ele me retorna o erro Cursor not returned from query....
Alguém sabe como resolver? ou tem uma forma melhor para resolver isso?????
Utilizo Firebird e DBExpress...
Agradeço desde já, obrigado!!!!!!!!!
Ramms
Curtidas 0
Respostas
Rjun
07/10/2005
Tira esse open/close depois do primeiro ExecSQL. Não tem o minimo sentido esses comandos aí.
GOSTEI 0
Ramms
07/10/2005
mas ele faz a função funcionar???
GOSTEI 0
Rjun
07/10/2005
Se você falasse onde ocorre o erro ficaria mais fácil. Outra coisa, esse segundo ExecSQL está errado. Para comandos SELECT, utilize Open. Para comandos Insert/Update/Delete, utilize ExecSQL.
GOSTEI 0
Ramms
07/10/2005
Se você falasse onde ocorre o erro ficaria mais fácil. Outra coisa, esse segundo ExecSQL está errado. Para comandos SELECT, utilize Open. Para comandos Insert/Update/Delete, utilize ExecSQL.
O erro ocorre na hr que eu clico no botão...em run time....
Vlw...
GOSTEI 0
Vinicius2k
07/10/2005
Colega,
Vc está se esquecendo de limpar a SQL da query, então, a segunda execução está ´misturada´ à primeira. Além é claro do que o RJun já lhe disse.
Vc está se esquecendo de limpar a SQL da query, então, a segunda execução está ´misturada´ à primeira. Além é claro do que o RJun já lhe disse.
Close; SQL.Clear; SQL.Add (´Update encomendas´); SQL.Add (´set Romaneio = :roman where ID_ENCOMENDA = :encomenda´); Params[0].AsInteger := StrtoInt(Edit1.Text); Params[1].AsInteger := StrtoInt(Edit2.Text); ExecSQL; // SQL.Clear; SQL.Add (´select * from encomendas where Romaneio = :roman´); Params[0].AsInteger := StrtoInt(Edit2.Text); Open;
GOSTEI 0
Ramms
07/10/2005
[quote:ecb279f16a=´Rjun´]Se você falasse onde ocorre o erro ficaria mais fácil. Outra coisa, esse segundo ExecSQL está errado. Para comandos SELECT, utilize Open. Para comandos Insert/Update/Delete, utilize ExecSQL.
O erro ocorre na hr que eu clico no botão...em run time....
Vlw...[/quote:ecb279f16a]
Detalhe, esse erro ocorre tanto em Query´s e ClientDataSet...
GOSTEI 0
Vinicius2k
07/10/2005
Vc leu minha resposta? :roll:
GOSTEI 0
Ramms
07/10/2005
Vc leu minha resposta? :roll:
HEUIAHUIEUheaiHUIEHie vc postou ao msm tempo que eu kra, malz...
Testei o seu Vinicius e ´funcionou´ só num tha dando o UPDATE que eh o que eu preciso, simplesmente ele não dah o update.....
o código ficou assim
with DM.qry do begin Close; SQL.Clear; SQL.Add (´UPDATE ENCOMENDAS SET ROMANEIO = :roman WHERE ID_ENCOMENDA = :encomenda´); Params[0].AsInteger := StrtoInt(Edit1.Text); Params[1].AsInteger := StrtoInt(Edit2.Text); ExecSQL; // end; with DM.ClientDataSet4 do begin Close; CommandText := (´select * from encomendas where Romaneio = :roman´); Params[0].AsInteger := StrtoInt(Edit2.Text); Open;
Eu estou usando o CDS ai no final para listar num DBGRID....
vlw
GOSTEI 0
Ramms
07/10/2005
Alguém?
GOSTEI 0