ApplyUpdates não grava no banco (android)

Delphi

02/08/2016

Olá, boa noite!
Estou mexendo em um aplicação Android feita em Delphi. Utilizo o delphi seattle e me deparei com um problema:
Minha FDConnection está com OpenMode = ReadWrite.
FDquery está com o cached update = true;
Utilizo FDconnection + FDQuery.

Consigo dar open nas tabelas e trago tudo que está salvo no banco,mas quando dou o ApplyUpdates as informações não vão para o banco, implementei o reconcille error para ver se retornava algum erro, mas não da erro algum... Se alguém souber o que pode ser.
Obrigado!
Core

Core

Curtidas 0

Respostas

Core

Core

02/08/2016

Tentei dar um execSql fazendo o insert na tabela e até assim não vai.
GOSTEI 0
Natanael Ferreira

Natanael Ferreira

02/08/2016

Experimente após o ApplyUpdates dar um Commit no Dataset.

Exemplo:

procedure TConnection.InsertExemplo;
const
  SQL: string = 'INSERT INTO TABELA' + SLineBreak +
                '(TESTE, TESTNOME)VALUES' + SLineBreak +
                '(:TESTE, :TESTNOME)';
begin
  fQuery.SQL.Clear;
  fQuery.SQL.Add(SQL);
  fQuery.ParamByName('TESTE').AsString := 'DEVMEDIA';
  fQuery.ParamByName('TESTNOME').AsString := 'DEVMEDIATESTE';
  fQuery.ExecSQL;
  fQuery.Connection.Commit; // Adicione esta linha
end;
GOSTEI 0
Core

Core

02/08/2016

Oi. Natanael. nao funcionou.
GOSTEI 0
Natanael Ferreira

Natanael Ferreira

02/08/2016

Experimente dar um applyupdates no FDConnection passando como parâmetro o FDQuery.

Exemplo:

FDQuery1.Post;
FDConnection1.ApplyUpdates([FDQuery1]);


Veja este link:
http://isaquesp.blogspot.com.br/2013/07/firedac-com-firebird-e-cacheupdate.html
GOSTEI 0
Core

Core

02/08/2016

Não funcionou tambem.
Fiz tentando ler escrever um arquivo e da a mesma coisa, consigo ler o arquivo q está la na pasta de qdo faço deploy, mas quando vou escrever ele não da erro mas tb não grava fica do mesmo jeito. E o caminho do arquivo esta corret. .\assets\internal\
Deixei todas as permissões ativadas e nada. Já n faço idéia mais do q possa ser.
GOSTEI 0
Wellington Telles

Wellington Telles

02/08/2016

Uma das coisas que percebi foi que o modo de acessar o banco de dados tem grande influência principalmente se utilizar dois programas para acessar o banco gerando conflito.
A ideia é usar no modo compartilhado conforme a página sugere:

https://docwiki.embarcadero.com/RADStudio/Sydney/en/Connect_to_SQLite_database_(FireDAC)

Para usar terá que "setar" esses dois parametros:

LockingMode=Normal
Synchronous=Normal

Do seu FDConnection.
GOSTEI 0
POSTAR