Jump to content
vinihhylian0103

DATABASE IS LOCKED DELPHI MOBILE

Recommended Posts

Estou fazendo um projeto de Delphi escola e nele tenho que gravar dados no SQLITE. Estou usando o seguinte código:

 

unit UClube;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.ListView.Types, FMX.ListView.Appearances, FMX.ListView.Adapters.Base,
  FMX.StdCtrls, FMX.ListView, FMX.DateTimeCtrls, FMX.Edit,
  FMX.Controls.Presentation, FMX.TabControl, FireDAC.Stan.Intf,
  FireDAC.Stan.Option, FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf,
  FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys,
  FireDAC.Phys.SQLite, FireDAC.Phys.SQLiteDef, FireDAC.Stan.ExprFuncs,
  FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, FireDAC.DApt,
  FireDAC.FMXUI.Wait, System.Rtti, System.Bindings.Outputs, Fmx.Bind.Editors,
  Data.Bind.EngExt, Fmx.Bind.DBEngExt, Data.DB, FireDAC.Comp.DataSet,
  Data.Bind.Components, Data.Bind.DBScope, FireDAC.Comp.UI, FireDAC.Comp.Client, System.IOUtils;

type
  TForm1 = class(TForm)
    TabControl1: TTabControl;
    TabItem2: TTabItem;
    tb1: TTabItem;
    lvSocio: TListView;
    btnSalvar: TButton;
    btnCancelar: TButton;
    btnEditar: TButton;
    btnExcluirr: TButton;
    Panel1: TPanel;
    edtDataNasc: TDateEdit;
    edtCod: TEdit;
    edtNome: TEdit;
    edtRg: TEdit;
    edtCPF: TEdit;
    edtEndereco: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    labwl: TLabel;
    NOME: TLabel;
    Button5: TButton;
    Panel2: TPanel;
    edtDataA: TDateEdit;
    edtCodSocio: TEdit;
    Label6: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    rdbSocio: TRadioButton;
    edtNomeA: TEdit;
    btnNovoA: TButton;
    edtHoraIA: TEdit;
    Label7: TLabel;
    Edit7: TEdit;
    edtHoraFA: TLabel;
    edtDescricaoA: TEdit;
    Label9: TLabel;
    edtValorA: TEdit;
    btnCancelarA: TButton;
    btnEditarA: TButton;
    btnExcluirA: TButton;
    btnSalvarA: TButton;
    lvAgendamento: TListView;
    FDConnPrincipal: TFDConnection;
    qrSocio: TFDQuery;
    qrAgendamento: TFDQuery;
    FDPhysSQLiteDriverLink1: TFDPhysSQLiteDriverLink;
    FDGUIxWaitCursor1: TFDGUIxWaitCursor;
    BindSourceDB1: TBindSourceDB;
    BindingsList1: TBindingsList;
    LinkListControlToField1: TLinkListControlToField;
    LinkControlToField1: TLinkControlToField;
    LinkControlToField2: TLinkControlToField;
    LinkControlToField3: TLinkControlToField;
    LinkControlToField4: TLinkControlToField;
    LinkControlToField5: TLinkControlToField;
    LinkControlToField6: TLinkControlToField;
    qrSocioID: TFDAutoIncField;
    qrSocioNOME: TStringField;
    qrSocioRG: TStringField;
    qrSocioCPF: TStringField;
    qrSocioENDERECO: TStringField;
    qrSocioDATA_NASC: TDateField;
    qrSocioCODIGO: TIntegerField;
    qrAgendamentoID: TFDAutoIncField;
    qrAgendamentoNOME: TStringField;
    qrAgendamentoCODIGO: TIntegerField;
    qrAgendamentoDESCRICAO: TWideMemoField;
    qrAgendamentoDATA: TDateField;
    qrAgendamentoHORA_INICIO: TStringField;
    qrAgendamentoHORARIO_FIM: TStringField;
    qrAgendamentoVALOR: TLargeintField;
    qrAgendamentoSOCIO: TStringField;
    procedure rdbSocioChange(Sender: TObject);
    procedure btnSalvarClick(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure btnCancelarClick(Sender: TObject);
    procedure btnEditarClick(Sender: TObject);
    procedure btnExcluirrClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.btnCancelarClick(Sender: TObject);
begin
qrSocio.Cancel;
Panel1.Enabled := False;
end;

procedure TForm1.btnEditarClick(Sender: TObject);
begin
if qrSocio.RecordCount > 0 then
begin
  qrSocio.Edit;
  Panel1.Enabled := True;
  edtNome.SetFocus;
end;
end;

procedure TForm1.btnExcluirrClick(Sender: TObject);
begin
if qrSocio.RecordCount = 0 then
abort;
qrSocio.Delete;
ShowMessage('Dados excluídos!');
end;

procedure TForm1.btnSalvarClick(Sender: TObject);
begin
if edtNome.Text = '' then
begin
ShowMessage('O nome não pode estar vázio!');
edtNome.SetFocus;
abort;
end;
qrSocio.Post;
qrSocio.Refresh;
Panel1.Enabled := False;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
Panel1.Enabled := True;
edtNome.SetFocus;
qrSocio.Append;
end;

procedure TForm1.FormShow(Sender: TObject);
  begin
  FDConnPrincipal.Connected := True;
  try
 {$IF DEFINED (IOS) or DEFINED (ANDROID)}
  FDConnPrincipal.Params.Values['DATABASE'] := TPath.Combine(TPath.GetDocumentsPath, 'BD_CLUBE.s3db');
  {$ENDIF}
  except on E: Exception do
  ShowMessage(e.Message);
  end;
  qrSocio.Open();
end;

procedure TForm1.rdbSocioChange(Sender: TObject);
begin
 if rdbSocio.IsChecked = true then
 begin
 edtCodSocio.Enabled := true;
 edtCodSocio.SetFocus;
 end;
end;

end.


E recebo o seguinte erro: image.thumb.png.09517599cccc2e4d1cca09812515aff6.png

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By luca0202
      SQL state: 42000 SQL error code 8179
      Não foi possivel encontrar a instrução preparada como o identificador - 1
      estou utilizando o os componentes dbExpress ai quando eu testo no meu computador que e windows 10 roda de boinha ai quando vou testar no pc de outra pessoa que e windows 7 da esse erro quando vou abrir um um dbgrid
      o que pode ser esse erro ? alguem me ajude ?
      obs: estou utilizando o banco sql server
    • By amauri.alves
      Bom dia,
      Estou em uma estação windows tentando me conectar a uma base SQL Server 2012 que está em um servidor Linux e estou tendo o seguinte problema.
      O Sistema tem duas instalações rodando em dois ambientes de servidores.
      Uma equipe utiliza o sistema com a base em um servidor Windows. Isto está funcionando sem problemas.
      Uma outra equipe vai precisar utilizar uma outra instalação do mesmo sistema porem esta terá que utilizar a mesma base instalada em um servidor Linux.
      O Sql Server manager está correto, conectou sem problemas e me responde todas as tabelas sem erros, lista todas as querys e executa todas as procedures views e triguers.
      A Conexão OBDC tambem respondeu sem erros e deu teste de conexção concluido com exito.

      No delphi eu utilizo Ado conection para me conectar à base, e ele responde também sem erros e testa a conexão retornando 
      teste de conexção concluido com exito.
      Até ai está tudo certo.
      O Problema é o seguinte.
      Quando eu ligo uma adotable ou uma ado query ele tambem conecta sem me retornar nenhum erro porem as tabelas não me trazem valor algum, elas respondem como se a base estivesse Vazia.
      Alguem sabe o que eu posso estar fazendo de errado?
      Obs. A Instalação está em dois Ambientes por que a demanda é desativar o servidor Windows e deixar somente a instalaçao Linux.

      **************************************************************
      Ambiente: Estação Windows 10
                Delphi 10.3 
                Sql Server 2012 Instalada em um Servidor Linux
                Conexão ODBC
      **************************************************************
    • By luca0202
      ola fiz a instalação de um programa que eu fiz e deu o seguinte erro : SQL state: 42000 SQL error code 8179
      Não foi possivel encontrar a instrução preparada como o identificador - 1.
      O que pode ser ? estou usando componentes dbexpress
    • By amauri.alves
      Boa Noite.

      Estou desenvolvendo um relatório utilizando o fastreport e estou com o seguinte problema.

      É um relatório de pedidos e por tanto precisa imprimir um pedido, voltar para a tela de parâmetros imprimir o próximo e assim sucessivamente.

      Porem o primeiro relatório vai certinho mas ele não limpa os dados e os próximos relatórios saem todos iguais ao primeiro.

      Ja tentei iniciar ele de varias formas diferente e nenhuma deu certo atualmente estou iniciando ele assim.

      *******************************************
      fr:=frxRComanda.Create(self);
      fr.LoadFromFile('Commanda.fr3');
      fr.PrepareReport(); // Prmeiro relatório setar True para limpar todos os anteriores
      fr.ShowReport;
      fr.clear;
      fr.free;
      ********************************************
      Ambiente: - Delphi 10.3
                            FastReport 6
                            SqlServer 2012
                           Windows 10

      Alguem ja pegou uma situação desta?
    • By Motta
      Google e Oracle decidem na Suprema Corte briga judicial sobre Android
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.