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 ELT_Yuken
      Bom, eu estou aprendendo js pelo celular da minha mãe, eu gostaria de saber como faço para criar botões que repetem uma função até eu tirar o dedo dele
    • By MateusG
      Bom dia,
       
      Tenho um problema, quando quero colocar o foco para uma coluna especifica pelo nome do campo no banco, nao da certo
      porem se eu fizer colocando o numero da ordem da coluna, exemplo coluna 4, ai da certo, mas queria pelo nome do campo
       
      Eu desejava dessa forma, porem assim ele nao da o foco.
      if condicao then grdAjuste.SetFocus('id_codigo'); Agora se eu fizer assim...
      if condicao then grdAjuste.SetFocus(4); assim da, porem dessa forma eu acho errado...
       
      se alguem puder me ajudar...
      Obrigado.
    • By JuanAlmeida
      Eaí, eu vim pedir ajuda aqui porque não encontro em nenhum lugar nada para me ajudar. Eu consigo desenvolver no Android Studio tranquilamente, so que o emulator não abre de jeito nenhum, no caso abre. Mas a tela fica preta; Igual a foto. Minha config é Q6600 + 8GB RAM + GT 610 2GB, embora não seja moderna, ela seria o suficiente pra rodar o emulator. Alguem pode me dizer o que é?

    • By T635
      Estou desenvolvendo um app para medir os batimentos do usuário por meio de um sensor em seu smartwatch. Entretanto estou com um bug na linha 36, e não faço a mínima ideia de como resolver.
      O link do código é esse:
      https://pastebin.com/gwEzhCdh
×

Important Information

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