SQLite Datenbank außerhalb der App öffnen

  • Antworten:8
  • Bentwortet
Danny
  • Forum-Beiträge: 37

15.07.2010, 10:12:27 via Website

Hallo zusammen,

ich habe eine App geschrieben, die Informationen in einer SQLite Datenbank auf dem Handy abspeichert. Nun mal eine blöde Frage dazu: Besteht irgendwie die Möglichkeit, dass man sich den Inhalt der SQLite Datenbank außerhalb der App anschauen kann? Ich stelle mir das so vor, dass die SQLite Datenbank ja - ähnlich zu einer Access-Datenbank (als mdb-File) - irgendwo auf dem Handy rumliegen muss. Da das Handy ja per USB-Kabel am PC angeschlossen ist, kann ich ja auch über den Dateimanager auf die Inhalte auf der Speicherkarte zugreifen. Findet man da vielleicht irgendwo die SQLite Datenbank und kann diese mittels Excel, Access oder einem Texteditor öffnen und die Inhalte prüfen? Oder bietet Eclipse da irgendeine Möglichkeit der Inhaltsbetrachtung?

Ich hoffe, ich konnte die Frage als Android-Entwickler-Neuling halbwegs deutlich formulieren. Es wäre super, wenn ihr mir hier weiterhelfen könntet.

Vielen Dank schon einmal für Eure Bemühungen.

Schöne Grüße

Dan

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

15.07.2010, 11:27:10 via Website

Findet man da vielleicht irgendwo die SQLite Datenbank

Wenn deine App die Datenbank auf der SD-Karte erzeugt hat, dann findest du die beim Anschließen des Phones via USB an deinen PC (Modus "als Festplatte") auch.


und kann diese mittels Excel, Access oder einem Texteditor öffnen

Deine .mdb kannst du auch nicht mit sinnvoll nem Texteditor öffnen, oder? ;)
Es gibt aber jede Menge Software zum Anschauen/Bearbeiten von SQLite-Datenbanken; wenn du nur wenige Daten hast, dann tuts jede beliebige, bei größeren Datenmengen habe ich noch nichts besseres als SqliteMan gefunden.

Antworten
Danny
  • Forum-Beiträge: 37

15.07.2010, 14:47:38 via Website

Ich erzeuge meine Datenbank mit diesem Befehl
1SQLiteDatabase v_datenbank = this.openOrCreateDatabase("datenbank", MODE_PRIVATE, null);
Erzeugt der Befehl auf der Speicherkarte oder im internen Telefonspeicher die Datenbank?

Und wie stellt sich das ganze dar, wenn ich über den Eclipse-Emulator meine App ausprobiere (d.h. kein Handy angeschlossen ist)? Im Workspace habe ich leider keine Datenbank finden können.

Danke + Gruß

Dan

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

15.07.2010, 16:27:05 via Website

du kannst dir über adb die db files von deinem emulator ziehen.

google hilft dir da sicher weiter

swordiApps Blog - Website

Antworten
Danny
  • Forum-Beiträge: 37

15.07.2010, 17:05:00 via Website

Ok, habe jetzt das hier gefunden:
http://developer.android.com/guide/developing/tools/adb.html#sqlite

1$ adb -s emulator-5554 shell
2# sqlite3 /data/data/com.example.google.rss.rssexample/databases/rssitems.db
3SQLite version 3.3.12
4Enter ".help" for instructions
5.... enter commands, then quit...
6sqlite> .exit

Mit der ersten Zeile komme ich noch klar ;-)
Aber ich habe Probleme mit der zweiten.
Ich konstruiere mir folgenden Befehl für die Kommandozeile:
1sqlite3 /data/data/de. .../databases/datenbank.db
Nur ist mir nicht ganz klar, was ich statt ... einsetzen muss.
Wenn ich dann im "Data-Dictionary" die vorhandenen Tabellen ansehen möchte (durch select * from sqlite_master;) erhalte ich als Meldung SQL error: not an error.

Sorry, für diese blöde Frage. Sehe wahrscheinlich den Wald vor lauter Bäumen nicht mehr ;-)

Gruß, Dan

Antworten
Markus Gu
  • Forum-Beiträge: 2.644

15.07.2010, 17:28:15 via Website

naja deine sqlite commands

.help vielleicht zuerstmal :)

swordiApps Blog - Website

Antworten
Danny
  • Forum-Beiträge: 37

15.07.2010, 17:37:34 via Website

Habs rausgefunden das ".db" am Ende muss weg. Dann gehts.

Gruß, Dan

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

15.07.2010, 20:37:15 via Website

Falls das noch interessant ist:

Ich erzeuge meine Datenbank mit diesem Befehl
1SQLiteDatabase v_datenbank = this.openOrCreateDatabase("datenbank", MODE_PRIVATE, null);
Erzeugt der Befehl auf der Speicherkarte oder im internen Telefonspeicher die Datenbank?

Die ist intern (hast du schon herausgefunden), extern wäre zB "/sdcard/datenbank.db"


Und wie stellt sich das ganze dar, wenn ich über den Eclipse-Emulator meine App ausprobiere (d.h. kein Handy angeschlossen ist)?

Im Emulator kannst du ebenfalls eine SD-Karte benutzen (ist dann ein Image auf der Festplatte)

In beiden Fällen (also Handy und Emulator) kannst du in Eclipse via DDMS direkt im laufenden Betrieb auf die Speicherkarte schauen und dort Dateien mit deiner Festplatte austauschen.

Antworten
Danny
  • Forum-Beiträge: 37

16.07.2010, 08:55:05 via Website

Ok, danke Euch. Komme jetzt bequem an die Infos in der Datenbank. Gibt es eigentlich eine Möglichkeit schnell Daten von einer Tabelle in Datenbank1 in eine Tabelle in Datenbank2 zu übertragen? Das Create-Statement der Tabelle erhalte ich ja über das "Data Dictionary" sqlite_master, um die Struktur zu übertragen. Ich würde jetzt noch gern die Insert-Statements erzeugen, um dann auch die Daten in die neue Datenbank zu übertragen.

Gruß, Dan

Antworten