Results 1 to 10 of 10

Thread: Database bestanden (SQLite) zijn niet meer te openen na update Delphi 10.4 naar 11.3

  1. #1

    Database bestanden (SQLite) zijn niet meer te openen na update Delphi 10.4 naar 11.3

    Database bestanden (SQLite) zijn niet meer te openen, ook niet als deze in de map "Documents" staan.

    Code:
    DataBaseBestand := Path + '/Data/Adressen.db';
    FDConnection1.ConnectionName := Path + '/Data/Adressen.db';
    FDConnection1.DriverName := 'SQLite';
    FDConnection1.Params.Database := DataBaseBestand;
    FDConnection1.Connected := True;
    Het volledige path is dan:
    /storage/emulated/0/Documents/MMSoft/Data/Adressen.db

    Bij de laatste regel krijg ik de melding:
    [FireDAC][Phys][SQLite]
    ERROR: unable to open
    database file

    Het werkte prima met Delphi 10.4, maar nu met versie 11.3 krijg ik deze fout melding.
    Wat is er aan de hand en hoe kan ik dit oplossen denken jullie ?

  2. #2
    Misschien heb je hier iets aan?

  3. #3
    Ik probeer van alles om toestemming te geven, maar kom geen stap verder....

    Als test probeer ik het eerst voor elkaar te krijgen met een .txt bestand en een Memo.
    Daarmee heb ik ook het probleem dat er geen toestemming is om het .txt bestand te lezen.

    Kwam dit tegen, iemand een idee of en hoe ik het hiermee werkend kan krijgen ?
    https://github.com/emozgun/delphi-android-SAF

    Als er een (.txt) bestand gemaakt wordt door de App, dan is deze ook weer uit te lezen.
    Maar het probleem is dat ik een App heb die een bestand (die van een PC op de telefoon gezet is) uit moet lezen.
    Dit was nooit een probleem met Delphi 10.4, maar nu dus wel met 11.3.

    Dus hoe kan ik het voor elkaar krijgen dat mijn App weer toegang heeft tot dit bestand denken jullie ?
    Last edited by MMSoft; 18-Sep-23 at 19:28.

  4. #4
    Senior Member
    Join Date
    Dec 2003
    Location
    Den Haag
    Posts
    208
    Ik heb ook wel eens problemen gehad met updaten van een Android app naar een nieuwere versie van Delphi. Probeer eens een heel nieuw Android project aan te maken, en daar alle units van je project aan toevoegen.

    Zorg ook voor dat de AndroidManifest.template.xml file up to date is zoals hier staat beschreven.
    https://docwiki.embarcadero.com/RADS...dManifest.xml)

    Heb je deze stappen ook uit gevoerd?
    https://blogs.embarcadero.com/develo...droid_Projects

  5. #5
    Ik ben helaas niets verder gekomen (eerst maar eens kijken of ik een .txt bestand kan
    openen voordat ik met een database bestand begin).
    Zo test ik het:

    -Begin een nieuw project (Er is nu dus een nieuw AndroidManifest.template.xml bestand)
    -Plaats een Memo en een Button op het Form.
    -Maak op de PC een .txt bestand (Bestand.txt) en plaats dat op de Device in de Map "Documents"

    Als ik nu op de Button drukt krijg ik de melding:
    Cannot open file "storage/emulated/0/Documents/Bestand.txt".
    Permission denied.

    Maar hoe geef ik nu op de juiste manier toestemming hiervoor ?

    Voorheen kon er toestemming gegevens worden voor "Bestanden en media", maar met de nieuwe versie
    kan je alleen nog maar toestemming voor Foto/video/muziek en audio geven.


    Code:
    unit Unit1;
    
    interface
    
    uses
      System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
      FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Memo.Types,
      FMX.StdCtrls, FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo;
    
    type
      TForm1 = class(TForm)
        Memo1: TMemo;
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.fmx}
    
    uses
      System.IOUtils;
    
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
     Memo1.Lines.LoadFromFile( System.IOUtils.TPath.GetSharedDocumentsPath + '/Bestand.txt' );
    end;
    
    end.
    Last edited by MMSoft; 19-Sep-23 at 15:40.

  6. #6
    Senior Member
    Join Date
    Dec 2003
    Location
    Den Haag
    Posts
    208
    Probeer eens internal storage te gebruiken met:

    Code:
    TPath.GetDocumentsPath
    Gebruik je de Deployment Manager om het bestand in assets\internal te plaatsen?
    https://developer.android.com/about/...rivacy/storage

    Welke versie van Android gebruik je trouwens? De latere versies zijn veiliger!

  7. #7
    Andriod versie 13

    Het gaat over bestanden die er via de PC opgezet zijn en gedeeld worden door meerdere App's
    Dus al deze App's moeten kunnen lezen en schrijven van/naar deze bestanden.

    Er zal toch nog wel een mogelijkheid moeten zijn ?
    Anders zou er ook geen bestandsbeheer App gemaakt kunnen worden.
    Last edited by MMSoft; 20-Sep-23 at 19:54.

  8. #8
    Ik kom maar niet verder....
    Zo lees ik ergens dat als je de bestanden in de map Documents zet, dat je gewoon toegang hebt tot je bestanden zonder
    dat je toestemming moet vragen.
    Helaas heb ik geen toegang tot de bestanden in die map (met uitzondering van audio en video bestanden).

    En zo probeer ik van alles, maar alles is in het Engels en daar ben ik niet goed in, dus mogelijk begrijp ik niet goed wat ik moet doen.
    Hulp is dan ook heel erg welkom.

  9. #9
    Als het op dezelfde 'machine' met dezelfde Android wel werkt met Delphi 10.4, maar nu niet met Delphi 11.3 is het misschien aan te raden een bugmelding te doen bij Embarcadero.
    Baat het niet, schaadt het niet.

  10. #10
    Quote Originally Posted by MaartenW View Post
    Als het op dezelfde 'machine' met dezelfde Android wel werkt met Delphi 10.4, maar nu niet met Delphi 11.3 is het misschien aan te raden een bugmelding te doen bij Embarcadero.
    Baat het niet, schaadt het niet.
    Het gaat niet om dezelfde Android (api). Delphi 11.3 werkt met een compleet andere Android Api (die veel meer beveiligd is) dus een bugreport zal niet zoveel uitmaken.

    Dan kun je beter hulp vragen op het Engelstalige Delphi forum.

    Misschien kun je nog de oude Android api installeren (maar ik heb geen idee of dat mogelijk is en hoe). En dat is uiteraard maar een tijdelijke oplossing.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •