Dúvida com TQuery
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.
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
Curtidas 0
Respostas
Fhcesar
20/04/2006
Amigo tente dar o POST, após o NEXT do seu While.
GOSTEI 0
Fabiano_aprendiz
20/04/2006
Tentei e naum funcionou....
GOSTEI 0
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
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.
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