Delphi XE5 Android Sqlite table locked

Delphi

24/04/2014

Estou tentando da um update numa tabela sqlite, mas retorna o erro table locked.
Alguem tem alguma solução?


try
  ///PREPARA QUERY
    SQLQueryupadte.SQL.Clear;
    SQLQueryupadte.SQL.add('UPDATE ACAPARAM');
    SQLQueryupadte.SQL.add('set IPACESSO= (:IPACESSO),');
    SQLQueryupadte.SQL.add('NOMEUSUARIO = (:NOMEUSUARIO),'); 
    SQLQueryupadte.SQL.add('NUMERO = (:NUMERO),');
    SQLQueryupadte.SQL.add('PAGINAFACEBOOK = (:PAGINAFACEBOOK),');
    SQLQueryupadte.SQL.add('PAGINAPESSOAL = (:PAGINAPESSOAL),');
    SQLQueryupadte.SQL.add('PAGINATWITTER = (:PAGINATWITTER),');

///MOVE OS CAMPOS
    SQLQueryupadte.ParamByName('IPACESSO').AsString := TRIM(EDIT7.TEXT);
    SQLQueryupadte.ParamByName('NOMEUSUARIO').AsString := UPPERCASE(TRIM(tbeditnome.TEXT));
    SQLQueryupadte.ParamByName('NUMERO').AsString := TRIM(EDIT2.TEXT);
    SQLQueryupadte.ParamByName('PAGINAFACEBOOK').AsString := LowerCase(TRIM(EDIT5.TEXT));
    SQLQueryupadte.ParamByName('PAGINAPESSOAL').AsString := LowerCase(TRIM(EDIT4.TEXT));
    SQLQueryupadte.ParamByName('PAGINATWITTER').AsString := LowerCase(TRIM(EDIT6.TEXT));

    SQLQueryupadte.ExecSQL;
  except
    on e: exception do
     begin
       showmessage(e.Message);
     end;
  end;
Carlos Escudeiro

Carlos Escudeiro

Curtidas 0

Respostas

Ricardo

Ricardo

24/04/2014

A mensagem de tabela bloqueada no SQLite acontece quando a mesma já está em uso e ao mesmo tempo tenta-se fazer uma nova operação de inserção, edição e deleção.

O SQLite só permite realizar consultas simultaneamente, as demais operações quando são realizadas, automaticamente bloqueiam a tabela enquanto estão em andamento.
GOSTEI 0
Jorge Lemos

Jorge Lemos

24/04/2014

fdconnection no parametro -> LockingMode" -> "Normal"; simples assim.
GOSTEI 0
POSTAR