Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Kann nicht auf meine DB schreiben

Das Thema "Kann nicht auf meine DB schreiben" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 08.12.2011, 10:55   #1 (permalink)
Neuer Benutzer

Registriert seit: 06.12.2011
Beiträge: 22
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard Kann nicht auf meine DB schreiben

Hi Leute,

hab folgendes kleines Problem. Ich möchte gerne in meiner Datenbank bel. Datensätze löschen.
Meine DB öffne nich wie folgt:

SQLiteDatabase checkDB =
null;
try{
String myPath =
DB_PATH + DB_NAME;

checkDB = SQLiteDatabase.openDatabase(myPath,
null, SQLiteDatabase.OPEN_READWRITE);
...

Das Auslesen der Daten funzt alles perfekt, nur beim Löschen bekomme ich immer den Fehler: attempt to write a readonly database....

Ich habe doch aber "OPEN_READWRITE" angegeben. Sollte ich doch auch schreiben dürfen?

Gruß

Butch
Butch78 ist offline   Mit Zitat antworten
Alt 08.12.2011, 10:58   #2 (permalink)
Android Experte
 
Benutzerbild von DieGoldeneMitte

Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
Standard AW: Kann nicht auf meine DB schreiben

SQLite DBs sind unterm Strich Dateien, die irgendwo im Filesystem liegen. Liegt deine DB irgendwo (zB in den Resourcen), wo die App nicht schreiben darf?
__________________
Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon.
Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten.
Tipp: Zum "Danke" sagen gibt es einen Button.
DieGoldeneMitte ist offline   Mit Zitat antworten
Alt 08.12.2011, 11:05   #3 (permalink)
Neuer Benutzer

Registriert seit: 06.12.2011
Beiträge: 22
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard AW: Kann nicht auf meine DB schreiben

Sie liegt in meinem Dataverzeichnis:
data/data/de.androiddev.myfirstDBapp/databases/mydb.db

Gruß
Butch78 ist offline   Mit Zitat antworten
Alt 08.12.2011, 14:11   #4 (permalink)
Neuer Benutzer

Registriert seit: 06.12.2011
Beiträge: 22
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard AW: Kann nicht auf meine DB schreiben

kann mir jemand weiterhelfen?

Grüße

Butch
Butch78 ist offline   Mit Zitat antworten
Alt 08.12.2011, 15:14   #5 (permalink)
Fortgeschrittenes Mitglied

Registriert seit: 14.08.2009
Beiträge: 354
Abgegebene Danke: 23
Erhielt 49 Danke für 43 Beiträge
Standard AW: Kann nicht auf meine DB schreiben

wie kam die DB in diesen Ordner? hast du es über ADB reinkopiert oder wie schaut dein code zum erzeugen der DB aus?
__________________
http://android.fungamer.net/
MichaelS ist offline   Mit Zitat antworten
Alt 08.12.2011, 16:00   #6 (permalink)
Neuer Benutzer

Registriert seit: 06.12.2011
Beiträge: 22
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
Standard AW: Kann nicht auf meine DB schreiben

Hi,

das interne Speichern hab ich verworfen. Ist wohl besser wenn ich meine DB auf der SD-Karte sichere.

Das mache ich wie folgt:
Ich prüfe erst ob meine DB auf der SD Karte vorhanden ist, falls nicht soll diese neu erstellt werden. Dazu kopiere ich mir einfach eine fertige DB aus meinem Asset - Ordner zu meiner SD Karte. Soweit der Plan. Beim OutputStream bekomme ich eine FileNotFoundException...

Als Pfad bekomme ich beim Debugen hier mnt/sdcard/myTestApp/test.db
Sollte er den Pfad + Datei nicht anlegen?
Und was ist mnt für ein Verzeichnis?

Code:
private String DB_NAME = "test.db"
private String APP_Name = "myTestApp"
private String DB_PATH = Environment.getExternalStorageDirectory().getAbsolutePath();
 
 

InputStream myInput = 
myContext.getAssets().open("database/"+DB_NAME);
String outFileName = DB_PATH + "/" + APP_NAME + "/" + DB_NAME;
OutputStream myOutput =
new FileOutputStream(outFileName);
byte[] buffer = newbyte[1024]; int length; while ((length = myInput.read(buffer))>0){ myOutput.write(buffer, 0, length); }
//Close the streams myOutput.flush(); myOutput.close();
myInput.close();


Die notwendigen Rechte habe ich auch gesetzt:
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<uses-permissionandroid:name="android.permission.READ_EXTERNAL_STORAGE"/>


Grüße

Butch
Butch78 ist offline   Mit Zitat antworten
Alt 09.12.2011, 09:14   #7 (permalink)
Junior Mitglied

Modell: iPhone 4s

Registriert seit: 22.07.2011
Beiträge: 47
Abgegebene Danke: 0
Erhielt 6 Danke für 6 Beiträge
Standard AW: Kann nicht auf meine DB schreiben

Hast du deine DB geschützt? Vielleicht vergessen dort die Rechte zu setzen?
GSXDriver ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

Thema Autor Forum Antworten Letzter Beitrag
kann in anderen Forum nicht schreiben BerndNeumann Samsung Galaxy S (I9000) Forum 6 20.01.2012 20:19
Kann meine Apps in Market nicht laden? AlexanderBerger Samsung Galaxy Ace (S5830) Forum 4 12.09.2011 21:05
Kann nicht mit dem Hanns im Forum schreiben mikaole HANNspree HANNSpad (SN10T1) Forum 16 10.09.2011 21:59
Kann aus der Kontaktliste nicht anrufen, nur Nachricht schreiben Fleetenkiecker Samsung Galaxy 3 (I5800) Forum 2 17.06.2011 16:04
Kann nichts auf die SD Karte schreiben Sarge.con APad GF10 Flytouch 2 Forum 0 05.06.2011 11:09




Du liest gerade: "Kann nicht auf meine DB schreiben" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.