1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. spike78, 29.11.2011 #1
    spike78

    spike78 Threadstarter Junior Mitglied

    Hi Leute,

    kann ich in Android irgendwie auf eine SQL Lite Datenbank zugreifen die auf meiner Festplatte liegt. In meiner App greife ich auf eine SQLLite DB zu, die ja in meinem DATA Verzeichnis liegt. Nun würde ich diese DB gerne irgendow auf meine Platte auslagern, damit ich diese besser bearbeiten kann.

    Bisher greife ich wie folgt auf meine DB zu:

    Code:
    [SIZE=2][/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]private[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] DatenbankManager [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mHelper[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2];[/SIZE]
    [SIZE=2][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]private[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] SQLiteDatabase [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mDatenbank[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2];[/SIZE]
    [SIZE=2] 
    [/SIZE][/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mHelper[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = [/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]new[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] DatenbankManager([/SIZE][B][SIZE=2][COLOR=#7f0055][SIZE=2][COLOR=#7f0055]this[/B][/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2]);
    [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mDatenbank[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2] = [/SIZE][SIZE=2][COLOR=#0000c0][SIZE=2][COLOR=#0000c0]mHelper[/COLOR][/SIZE][/COLOR][/SIZE][SIZE=2].getReadableDatabase();[/SIZE][SIZE=2]
    [/SIZE] 
    
    Grüße

    Spike
     
  2. swordi, 29.11.2011 #2
    swordi

    swordi Gewerbliches Mitglied

    du kannst sie über adb von deinem emulator auf deine festplatte kopieren und zurück

    adb push - adb pull glaub ich
     
  3. spike78, 29.11.2011 #3
    spike78

    spike78 Threadstarter Junior Mitglied

    Hi,

    so mache ich das bisher auch immer. Finde das nur sehr mühsam, da ich noch ständig die Datensätze per SQLLite Administrator ändern muss. So muss ich halt nach jeder Änderung die DB wieder zurück auf meinen Emulator kopieren.

    Gibt es keine Möglichkeit meinem Emulator zu sagen, verwende z.B. DB unter c:\test.db ?

    Grüße

    Spike
     
  4. swordi, 29.11.2011 #4
    swordi

    swordi Gewerbliches Mitglied

    naja die frage ist, warum musst du ständig die datensätze ändern?
     
  5. spike78, 29.11.2011 #5
    spike78

    spike78 Threadstarter Junior Mitglied

    Ich bin halt noch viel am testen und füge immer wieder mal neue Datensätze hinzu oder ändere andere. Wäre halt echt praktisch wenns ne andere Möglichkeit gäbe als das hin und her kopieren ?

    Gruß

    Spike
     
  6. swordi, 29.11.2011 #6
    swordi

    swordi Gewerbliches Mitglied

    naja mit adb ist das ein aufruf und schon hast es runter oder rauf geladen.

    von daher ist das schon recht komfortabel
     
  7. Tom299, 29.11.2011 #7
    Tom299

    Tom299 Android-Experte

    für den pull hab ich mir ne batch-datei geschrieben, würde für push natürlich auch gehen. mußt nur bedenken, daß du das nur mit dem EMU machen kannst, wenn du dann mit dem handy testen willst, hast du keine root-rechte und somit kein zugriff.

    meine app hat aber ne backup-funktion, die mir meine db auf die SD-Karte kopiert, und darauf wiederum kannst du immer zugreifen. ein backup zurückspielen kann ich natürlich auch. somit kann ich auch auf meinem handy problemlos mit DBs testen :)

    achja, so könnte die batch-datei aussehen:
    adb -s emulator-5554 pull data/data/de.testapp/databases/test.db "C:\Projekte\testapp\db-emulator\test.db"