Fórum problema com alteração de registro interbase 6 #245459

03/08/2004

0

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;


Transistorbr

Transistorbr

Responder

Posts

03/08/2004

Roy

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;


Responder

Gostei + 0

03/08/2004

Transistorbr

beleza vou testar!! :D


Responder

Gostei + 0

03/08/2004

Transistorbr

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???


Responder

Gostei + 0

03/08/2004

Roy

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.


Responder

Gostei + 0

04/08/2004

Transistorbr

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


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar