problema com alteração de registro interbase 6
olá comunidade delphiana!!! :D
Estou com o seguinte problema:
Numa tabela de relatorio e tenho um campo chamado ´impresso´ , cuja afinalidade justamente esta saber se o relatorio foi impresso e um campo data de impressao.
mas quando eu vou mudar os seus valores o delphi atualiza somente enquanto o programa em execução se fecho o programa e o executo novamente os campos impresso e data de impressao continuam marcados como se nao fossem sido impresso!
Alquem me disser porque isso acontece ?
minha linha de codigo é esta:
DM_SCI.DTSET_RELATORIO.First;
WHILE NOT DM_SCI.DTSET_RELATORIO.Eof DO
BEGIN
DM_SCI.DTSET_RELATORIO.Edit;
DM_SCI.DTSET_RELATORIOIMPRESSAO.AsInteger:=1;
DM_SCI.DTSET_RELATORIODT_IMPRESSAO.AsDateTime:=date;
DM_SCI.DTSET_RELATORIO.Post;
DM_SCI.DTSET_RELATORIO.Next;
END;
Estou com o seguinte problema:
Numa tabela de relatorio e tenho um campo chamado ´impresso´ , cuja afinalidade justamente esta saber se o relatorio foi impresso e um campo data de impressao.
mas quando eu vou mudar os seus valores o delphi atualiza somente enquanto o programa em execução se fecho o programa e o executo novamente os campos impresso e data de impressao continuam marcados como se nao fossem sido impresso!
Alquem me disser porque isso acontece ?
minha linha de codigo é esta:
DM_SCI.DTSET_RELATORIO.First;
WHILE NOT DM_SCI.DTSET_RELATORIO.Eof DO
BEGIN
DM_SCI.DTSET_RELATORIO.Edit;
DM_SCI.DTSET_RELATORIOIMPRESSAO.AsInteger:=1;
DM_SCI.DTSET_RELATORIODT_IMPRESSAO.AsDateTime:=date;
DM_SCI.DTSET_RELATORIO.Post;
DM_SCI.DTSET_RELATORIO.Next;
END;
Transistorbr
Curtidas 0
Respostas
Roy
03/08/2004
Faça o seguinte:
DM_SCI.DTSET_RELATORIO.First;
WHILE NOT DM_SCI.DTSET_RELATORIO.Eof DO
BEGIN
DM_SCI.DTSET_RELATORIO.Edit;
DM_SCI.DTSET_RELATORIOIMPRESSAO.AsInteger:=1;
DM_SCI.DTSET_RELATORIODT_IMPRESSAO.AsDateTime:=date;
DM_SCI.DTSET_RELATORIO.Post;
M_SCI.DTSET_RELATORIO.Next;
END;
//No final do seu while use ApplyUpdates e logo depois commitRetaining;
DM_SCI.DTSET_RELATORIO.First;
WHILE NOT DM_SCI.DTSET_RELATORIO.Eof DO
BEGIN
DM_SCI.DTSET_RELATORIO.Edit;
DM_SCI.DTSET_RELATORIOIMPRESSAO.AsInteger:=1;
DM_SCI.DTSET_RELATORIODT_IMPRESSAO.AsDateTime:=date;
DM_SCI.DTSET_RELATORIO.Post;
M_SCI.DTSET_RELATORIO.Next;
END;
//No final do seu while use ApplyUpdates e logo depois commitRetaining;
GOSTEI 0
Transistorbr
03/08/2004
beleza vou testar!! :D
GOSTEI 0
Transistorbr
03/08/2004
coloque assim:
DM_SCI.DTSET_RELATORIO.First;
WHILE NOT DM_SCI.DTSET_RELATORIO.Eof DO
BEGIN
DM_SCI.DTSET_RELATORIO.edit;
DM_SCI.DTSET_RELATORIOIMPRESSAO.AsInteger:=1;
DM_SCI.DTSET_RELATORIODT_IMPRESSAO.AsDateTime:=date;
DM_SCI.DTSET_RELATORIO.Post;
DM_SCI.DTSET_RELATORIO.ApplyUpdates;
DM_SCI.SCITransaction.CommitRetaining;
dm_sci.DTSET_RELATORIO.Next;
END;
e ainda nao funcionou!!!
o q podera ser???
DM_SCI.DTSET_RELATORIO.First;
WHILE NOT DM_SCI.DTSET_RELATORIO.Eof DO
BEGIN
DM_SCI.DTSET_RELATORIO.edit;
DM_SCI.DTSET_RELATORIOIMPRESSAO.AsInteger:=1;
DM_SCI.DTSET_RELATORIODT_IMPRESSAO.AsDateTime:=date;
DM_SCI.DTSET_RELATORIO.Post;
DM_SCI.DTSET_RELATORIO.ApplyUpdates;
DM_SCI.SCITransaction.CommitRetaining;
dm_sci.DTSET_RELATORIO.Next;
END;
e ainda nao funcionou!!!
o q podera ser???
GOSTEI 0
Roy
03/08/2004
Faça assim:
if not DM_SCI.SCITransaction.intransaction then
DM_SCI.SCITransaction.starttransaction;
DM_SCI.DTSET_RELATORIO.First;
WHILE NOT DM_SCI.DTSET_RELATORIO.Eof DO
BEGIN
DM_SCI.DTSET_RELATORIO.edit;
DM_SCI.DTSET_RELATORIOIMPRESSAO.AsInteger:=1;
DM_SCI.DTSET_RELATORIODT_IMPRESSAO.AsDateTime:=date;
DM_SCI.DTSET_RELATORIO.Post;
DM_SCI.DTSET_RELATORIO.ApplyUpdates;
dm_sci.DTSET_RELATORIO.Next;
end;
try
DM_SCI.SCITransaction.CommitRetaining;
except
DM_SCI.SCITransaction.rollbackRetaining
end;
Atenção: verifique se o modify do componente DM_SCI.DTSET_RELATORIO tem o comando para atualizar os dados, ex:
update <<tabela>> set IMPRESSAO=:IMPRESSAO, DT_IMPRESSAO=:DTIMPRESSAO
WHERE <<CONDIÇÃO>>
Se isso não funcionar, talvez tenha algum problema com seu componente. Verifique se o mesmo se encontra atualizado.
if not DM_SCI.SCITransaction.intransaction then
DM_SCI.SCITransaction.starttransaction;
DM_SCI.DTSET_RELATORIO.First;
WHILE NOT DM_SCI.DTSET_RELATORIO.Eof DO
BEGIN
DM_SCI.DTSET_RELATORIO.edit;
DM_SCI.DTSET_RELATORIOIMPRESSAO.AsInteger:=1;
DM_SCI.DTSET_RELATORIODT_IMPRESSAO.AsDateTime:=date;
DM_SCI.DTSET_RELATORIO.Post;
DM_SCI.DTSET_RELATORIO.ApplyUpdates;
dm_sci.DTSET_RELATORIO.Next;
end;
try
DM_SCI.SCITransaction.CommitRetaining;
except
DM_SCI.SCITransaction.rollbackRetaining
end;
Atenção: verifique se o modify do componente DM_SCI.DTSET_RELATORIO tem o comando para atualizar os dados, ex:
update <<tabela>> set IMPRESSAO=:IMPRESSAO, DT_IMPRESSAO=:DTIMPRESSAO
WHERE <<CONDIÇÃO>>
Se isso não funcionar, talvez tenha algum problema com seu componente. Verifique se o mesmo se encontra atualizado.
GOSTEI 0
Transistorbr
03/08/2004
valeu amigo!
são pessoas como vc q tornam esta a melhor e maior lista sobre delphi do pais.
Fico muito agradecido por sua ajuda!
o erro erra:
o modify do dtset_relatorio terminava assim:
..... and dt_impressao = :old_dt_impressao and impressao = :old_impressao;
foi so corrigir isso!
valeu
são pessoas como vc q tornam esta a melhor e maior lista sobre delphi do pais.
Fico muito agradecido por sua ajuda!
o erro erra:
o modify do dtset_relatorio terminava assim:
..... and dt_impressao = :old_dt_impressao and impressao = :old_impressao;
foi so corrigir isso!
valeu
GOSTEI 0