ApplyUpdate FireDac UpdateCache
Ola Amigos bom dia.
Estou tendo problema nesta linha de codigo :
no primeireo metodo o FireDac Faz o ApplyUpdates Corretamente, estou usando Updade em Cache, mas apos este tenho a necessidade de um segundo tratamento com o 2 metodo. ja no segundo de forma alguma ele comita a informação na base de dados, ja tentei de tudo o ultimo codigo e o que estou enviando. não consigo resolver. preciso de ajuda.
1º Primeiro Metodo funciona o Apply:
if ReciboNFe <> '' then
begin
fMovNotasFiscais.fdqCustom.Edit;
fMovNotasFiscais.fdqCustomNF_LOTE_NFE.AsInteger := Lote;
fMovNotasFiscais.fdqCustomNF_DATA_SAIDA.AsDateTime := Date;
fMovNotasFiscais.fdqCustomNF_RECIBO_NFE.AsString := ReciboNFe;
fMovNotasFiscais.fdqCustomNF_XML_NFE.AsString := fXmlAssinado;
fMovNotasFiscais.fdqCustomNF_ID_NFE.AsString := ID_NFe;
fMovNotasFiscais.fdqCustomNF_SITUACAO.AsString := 'P';
fMovNotasFiscais.fdqCustom.Post;
fMovNotasFiscais.fdqCustom.ApplyUpdates(0);
-----------------------------------------------------------------------
2º Metodo apos o primeiro não esta Comitando.
fMovNotasFiscais.fdqCustom.Edit;
fMovNotasFiscais.fdqCustomNF_SITUACAO.AsString := 'A';
fMovNotasFiscais.fdqCustomNF_DATA_SAIDA.Clear;
fMovNotasFiscais.fdqCustom.Post;
dmPrincipal.DataBase.TxOptions.AutoCommit := False;
dmPrincipal.DataBase.StartTransaction;
iErrors := fMovNotasFiscais.fdqCustom.ApplyUpdates;
if iErrors = 0 then
begin
fMovNotasFiscais.fdqCustom.CommitUpdates;
dmPrincipal.DataBase.Commit;
end
else
dmPrincipal.DataBase.Rollback;
dmPrincipal.DataBase.TxOptions.AutoCommit := True;
Obs, já tinha tentanto fazer como o primeiro metodo sem isolar a transacao e mesmo assim nao comita de nenhuma forma.
Estou tendo problema nesta linha de codigo :
no primeireo metodo o FireDac Faz o ApplyUpdates Corretamente, estou usando Updade em Cache, mas apos este tenho a necessidade de um segundo tratamento com o 2 metodo. ja no segundo de forma alguma ele comita a informação na base de dados, ja tentei de tudo o ultimo codigo e o que estou enviando. não consigo resolver. preciso de ajuda.
1º Primeiro Metodo funciona o Apply:
if ReciboNFe <> '' then
begin
fMovNotasFiscais.fdqCustom.Edit;
fMovNotasFiscais.fdqCustomNF_LOTE_NFE.AsInteger := Lote;
fMovNotasFiscais.fdqCustomNF_DATA_SAIDA.AsDateTime := Date;
fMovNotasFiscais.fdqCustomNF_RECIBO_NFE.AsString := ReciboNFe;
fMovNotasFiscais.fdqCustomNF_XML_NFE.AsString := fXmlAssinado;
fMovNotasFiscais.fdqCustomNF_ID_NFE.AsString := ID_NFe;
fMovNotasFiscais.fdqCustomNF_SITUACAO.AsString := 'P';
fMovNotasFiscais.fdqCustom.Post;
fMovNotasFiscais.fdqCustom.ApplyUpdates(0);
-----------------------------------------------------------------------
2º Metodo apos o primeiro não esta Comitando.
fMovNotasFiscais.fdqCustom.Edit;
fMovNotasFiscais.fdqCustomNF_SITUACAO.AsString := 'A';
fMovNotasFiscais.fdqCustomNF_DATA_SAIDA.Clear;
fMovNotasFiscais.fdqCustom.Post;
dmPrincipal.DataBase.TxOptions.AutoCommit := False;
dmPrincipal.DataBase.StartTransaction;
iErrors := fMovNotasFiscais.fdqCustom.ApplyUpdates;
if iErrors = 0 then
begin
fMovNotasFiscais.fdqCustom.CommitUpdates;
dmPrincipal.DataBase.Commit;
end
else
dmPrincipal.DataBase.Rollback;
dmPrincipal.DataBase.TxOptions.AutoCommit := True;
Obs, já tinha tentanto fazer como o primeiro metodo sem isolar a transacao e mesmo assim nao comita de nenhuma forma.
Kelson Santos
Curtidas 0
Respostas
Araujo Junior.
03/11/2016
Ao inves de usar o ApplyUpdates do FDQuery, você poderia utilizar o componente FDTransaction, ou o próprio FDConnection conforme exemplo no link abaixo.
http://docwiki.appmethod.com/appmethod/1.13/topics/en/Managing_Transactions_(FireDAC)
http://docwiki.appmethod.com/appmethod/1.13/topics/en/Managing_Transactions_(FireDAC)
GOSTEI 0