Dúvida com TQuery

Delphi

20/04/2006

Prezados Colegas,

Como faço p/ler e escrever ao mesmo tempo em um registro na tabela utilizando o componente TQuery? Deixa eu tentar explicar melhor, seguinte:
Eu faço uma consulta na tabela e pego seus dados e jogo p/impressão através de um determinado componente, só q ao final da impressão desse registro, eu tenho q escrever em 1 campo da tabela q esse registro já foi impresso. Antes eu estava utilizando uma TTable e funcionava perfeitamente assim:

While not Table1.Eof Do
.
.
//Aqui estou lendo e mandando os dados p/impressora
RDprint1.Imp(Linha,44, Table1.FieldByName(´Campo14´).AsString);
RDprint1.Imp(Linha,80, QyPesquisa.FieldByName(´Campo40´).AsString);
.
.
//Aqui escrevia na tabela q o registro foi impresso
Table1.Edit;
Table1.FieldByName(´Impresso´).AsBoolean := True;
Table1.Post;
.
.
Table1.Next;

Só q com a TQuery naum funciona, se uso o Edit e Post, da o erro: Cannot modify a read-only dataset....
Se uso
Query1.Close;
Query1.ParaByName.....
Query1.Open;
Da erro dizendo q o campo naum existe??
O q fazer??
Desde já agradeço.


Fabiano_aprendiz

Fabiano_aprendiz

Curtidas 0

Respostas

Fhcesar

Fhcesar

20/04/2006

Amigo tente dar o POST, após o NEXT do seu While.


GOSTEI 0
Fabiano_aprendiz

Fabiano_aprendiz

20/04/2006

Tentei e naum funcionou....


GOSTEI 0
Rjun

Rjun

20/04/2006

Que banco de dados você esta usando? Qual TQuery você esta usando? A do BDE, do ADO, ou outro?


GOSTEI 0
Fabiano_aprendiz

Fabiano_aprendiz

20/04/2006

Problema resolvido!

resolvi usando 2 TQuerys, dessa forma:

Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add(´Update Salvos Set Impresso = True ´);
Query1.Sql.Add(´Where Codigo = ´+QyPesquisa.FieldByName(´Codigo´).AsString);
Query1.ExecSQL;

vlw galera.


GOSTEI 0
POSTAR