![]() |
Datenbank: SQLite • Version: 8 • Zugriff über: FireDac
Android FireDac SQLite: "attempt to write a read only database"
Hallo,
ich bekomme unter Android FireDac SQLite die Meldung "attempt to write a read only database" bei dem SQL-Befehl "Create Table ..." Über diese Parameter öffne ich die Connection:
Delphi-Quellcode:
hier finde ich folgendes: zu 'OpenMode=CreateUTF8'
Connection:=TFDConnection.Create(nil);
Connection.Params.Add('DriverID=SQLite'); // l_o_TFDConnection.Params.Add('User_Name=xyz'); // l_o_TFDConnection.Params.Add('Password=demotest'); Connection.Params.Add('Database=' + s_DB ); //'c:\...\xx.SQLite ' Connection.Params.Add('OpenMode=CreateUTF8'); Connection.Params.Add('DateTimeFormat=String'); Connection.LoginPrompt := false; Connection.Open(); ![]() OpenMode: CreateUTF8 – Öffnen einer Datenbank zum Lesen oder Schreiben. Wenn die Datenbank nicht vorhanden ist, wird sie mit der Standardcodierung UTF8 (dem Standardwert für Delphi-Versionen vor 2009) erstellt. Unter Win10 läuft der SQL Befehl "Create Table ....." an dieser Stelle :( |
AW: Android FireDac SQLite: "attempt to write a read only database"
Was für ein Pfad ist in
Delphi-Quellcode:
eingetragen?
s_DB
(Doch bitte kein
Delphi-Quellcode:
auf Android, oder etwa doch?)
'C:\…'
|
AW: Android FireDac SQLite: "attempt to write a read only database"
Hallo,
nein kein "c:\" ich kann die Datenbank öffnen
Delphi-Quellcode:
und über "Select .. " auch die Tabellen lesen.
Connection.Open();
Dabei musste ich beim Öffnen der Datenbank die Groß/Kleinschreibung beachten Vor dem Schreiben kann ich über den Connector ja auch die DB öffnen. Wäre die Datei nicht vorhanden, käme hier schon einen Fehlermeldung. Hier kommt der Fehler:
Delphi-Quellcode:
Connection.ExecSQL(s_SQL);
|
AW: Android FireDac SQLite: "attempt to write a read only database"
Aber wo liegt denn die Datei nun unter Android genau?
|
AW: Android FireDac SQLite: "attempt to write a read only database"
"sdcard/Documents/Tablet_Daten/Server_Interface/von_Server/DBs_SQLite/"
im Debugger sieht der Pfad so aus: "storage/emulated/0/Documents/Tablet_Daten/Server_Interface/von_Server/DBs_SQLite/" den Pfad hole ich mir über: Androidapi.IOUtils.GetSharedDocumentsDir ; Alternative: Androidapi.IOUtils.GetExternalDocumentsDir; es sieht so aus, als hätte ich hier keine Schreibrechte. Allerdings habe ich die Datei.SQLite über http in einer Zip-Datei von einem Apache-Server geholt, die Unterverzeichnisse über TDirectory erstellt und über TZip ausgepackt. Dabei hatte ich ja auch die Schreibrechte. Wie schon erwähnt: Lesen über "Select.." geht |
AW: Android FireDac SQLite: "attempt to write a read only database"
Hier hab ich etwas dazu gefunden
![]() If using Android. Make sure you have added the permission to write to your EXTERNAL_STORAGE to your AndroidManifest.xml. Add this line to your AndroidManifest.xml file above and outside your <application> tag. <uses-permission android:name="android.permission.WRITE_EXTERNAL_ST ORAGE"/> This will allow your application to write to the sdcard. This will help if your EXTERNAL_STORAGE is where you have stored your database on the device. Wie komme ich an dieses AndroidManifest.xml. |
AW: Android FireDac SQLite: "attempt to write a read only database"
Zitat:
|
AW: Android FireDac SQLite: "attempt to write a read only database"
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: Android FireDac SQLite: "attempt to write a read only database"
die beiden Einstellungen stehen bei meinem Projekt schon auf true :(
|
AW: Android FireDac SQLite: "attempt to write a read only database"
![]() Navigate to /system/etc/permissions/ abe rich finde kein /system/etc/ mit dem ES Datei Explorer |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz