1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Datenbank Basic

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von anfortas, 09.08.2010.

  1. anfortas, 09.08.2010 #1
    anfortas

    anfortas Threadstarter Neuer Benutzer

    Beiträge:
    13
    Erhaltene Danke:
    0
    Registriert seit:
    19.07.2010
    Hallo

    Ich bin gerade am rumpröbeln und versuche gerade eine minimale Datendank zu erstellen. Das hat soweit Funktioniert. Doch beim löschen habe ich noch Probleme. Eigentlich müsste dieser Code doch die Tabelle "meineTabelle" löschen. Wo liegt der Fehler?

    try{
    db1 = openOrCreateDatabase("meineTabelle", MODE_WORLD_READABLE, null);
    db1.execSQL("DROP TABLE" + "meineTabelle");
    }
    catch (Exception e) {;}
    finally { db1.close();}
     
  2. Zonnex, 09.08.2010 #2
    Zonnex

    Zonnex Fortgeschrittenes Mitglied

    Beiträge:
    431
    Erhaltene Danke:
    49
    Registriert seit:
    12.09.2009
    Leerzeichen nicht vergessen!
    db1.execSQL("DROP TABLE " + "meineTabelle");

    Mfg :)
     
  3. anfortas, 09.08.2010 #3
    anfortas

    anfortas Threadstarter Neuer Benutzer

    Beiträge:
    13
    Erhaltene Danke:
    0
    Registriert seit:
    19.07.2010
    Ach.... Sachen gibts...:(:(
    Aber vielen dank!;)
    Ich habe etwas weiter ausprobiert und es haben sich mir noch einmal eine weitere Fragen gestellt, oder eher ein Problem

    Ich habe nun eine einfache Datenbank erstellt, (diesesmal mit einem Databasehelper).
    In einem EditText, kann man Text eingeben und diesen dann in der Datenbank anlegen und gleichzeitig ausgeben. Problem ist nur bei Neustart der Applikation wird natürlich wieder die Oncreate aufgerufen und alles ist wieder wie vorher.
     
  4. Zonnex, 09.08.2010 #4
    Zonnex

    Zonnex Fortgeschrittenes Mitglied

    Beiträge:
    431
    Erhaltene Danke:
    49
    Registriert seit:
    12.09.2009
    Hab zwar bei Android noch nicht mit Datenbanken gearbeitet, aber da gibt es mehrere Möglichkeiten:

    1. Evtl. gibt es eine Methode die Überprüft ob die DB existiert.

    2. Einfach einen simplen read Befehl ausführen, welcher ein Ergebnis liefert wenn sie existiert, oder einen Fehler wenn nicht.

    3. Über SharedPreferences eine boolean abspeichern, welche beim ersten start, nachdem die Datenbank erstellt wurde, auf true gesetzt wird.
     
  5. the_alien, 09.08.2010 #5
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    OnCreate sollte eigentlich nur aufgerufen werden wenn die Datenbank noch nicht da ist.
    Gelöscht werden sollte die Datenbank auch nur wenn die Applikation deinstalliert ist.
     
  6. anfortas, 09.08.2010 #6
    anfortas

    anfortas Threadstarter Neuer Benutzer

    Beiträge:
    13
    Erhaltene Danke:
    0
    Registriert seit:
    19.07.2010
    Die Datenbank selber wird natürlich nicht gelöscht, sondern nur die Tabelle, dass sie nachher wieder neu angelegt werden kann.
    Das erscheint mir, als den einfachsten weg.

    und es ist ja openOrCreateDatabase, ich meine damit das Oncreate der Acitivty, und dieses ist wahrscheinlich zwingend oder?
     
  7. Zonnex, 09.08.2010 #7
    Zonnex

    Zonnex Fortgeschrittenes Mitglied

    Beiträge:
    431
    Erhaltene Danke:
    49
    Registriert seit:
    12.09.2009
    Jup.
     
  8. anfortas, 09.08.2010 #8
    anfortas

    anfortas Threadstarter Neuer Benutzer

    Beiträge:
    13
    Erhaltene Danke:
    0
    Registriert seit:
    19.07.2010
    Ach...:(:(

    Gibts irgendso einen Android-Gott, an den man sich wenden kann, falls man nicht mehr weiterkommt, keine Ahnung hat und unter extremem zeitdruck steht und der einem dann weiterhilft?
     
  9. the_alien, 10.08.2010 #9
    the_alien

    the_alien Android-Lexikon

    Beiträge:
    1,559
    Erhaltene Danke:
    184
    Registriert seit:
    04.05.2009
    Die Tabelle ist auch nicht weg. Wenn die App NICHT deinstalliert wird oder ihre Daten MANUELL GELÖSCHT werden, ist die Datenbank auf jeden Fall noch da und hat ihren Inhalt noch.

    Falls du nur openOrCreateDatabase nutzt bleibt die Datenbank genau so wie sie vorher war. Du musst die Tabelle schon manuell droppen...

    PS: Gerade oben gesehen das du sie wirklich manuell dropst...
     

Diese Seite empfehlen