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

SQLite Datenbank Problem

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von joschika77, 23.06.2009.

  1. joschika77, 23.06.2009 #1
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Hallo...ich möchte eine Datenbank anlegen und habe dazu auch einige Beispiele gefunden. Leider klappt das nicht so wie es soll. Ich hab mir ne eigene Datenbank-Klasse erstellt und wollte nun die DB erstellen und eine Tabelle erzeugen. Leider geht beim Anlegen der DB schon was schief laut Debugger. Ich dachte mir das so: Zuerst frage ich ob die DB da ist. Wenn nicht muß ich noch einen anderen Schritt machen. Als nächstes, also wenn die nicht da ist, erstelle ich halt die DB. Aber leider klappt das nicht. Exception sagt immer can't not open. Er soll die ja eigentlich erstellen wenn nicht da. :confused: Er weiß da mehr?

    Code:
    public class EDbConnection
    {
        private static SQLiteDatabase ourDb = null;
        
        public EDbConnection(){}
    
        public boolean openConnection()
        {
            try
            {
                ourDb = SQLiteDatabase.openDatabase("testDB",null,SQLiteDatabase.OPEN_READWRITE);
            }
            catch(SQLiteException sqle){return false;}
            catch(Exception e){return false;}
            return true;
        }
        public boolean createDatabase()
        {
            try
            {
                //ourDb = SQLiteDatabase.openOrCreateDatabase("testDB",null);
                ourDb = SQLiteDatabase.openDatabase("testDB",null,SQLiteDatabase.CREATE_IF_NECESSARY);
                ourDb.execSQL("CREATE TABLE IF NOT EXISTS vehicle (Fahrer  TEXT,Team TEXT);");
            }
            catch(SQLiteException sqle)
            {
                String a = sqle.getMessage();
                return false;
            }
            catch(Exception e)
            {
                return false;
            }
            return true;
        }
    }
    
    Ich benutze den Emulator wollte ich noch einfügen.
     
  2. joschika77, 23.06.2009 #2
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Geht das mit dem Emulator überhaupt? Oder is die erstellte DB dann immer wieder weg wenn ich den Emu starte? HAt jemand damit Erfahrug?
     
  3. swordi, 23.06.2009 #3
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    im emu funktioniert die datenbank völlig gleich wie am richtigen händy. das macht keine probleme.

    ich mache die verbindungen aber anders.

    das activity bzw der context kann dbs erzeugen und öffnen

    somit hab ich

    ctx.openOrCreateDatabase(NAME, xxx)

    versuch dich mal dazu etwas schlau zu machen. vielleicht gehts dann.
     
  4. joschika77, 24.06.2009 #4
    joschika77

    joschika77 Threadstarter Android-Hilfe.de Mitglied

    Beiträge:
    129
    Erhaltene Danke:
    1
    Registriert seit:
    26.05.2009
    Hmmm ...hab ein Beispiel gefunden wo erst versucht wird die DB zu öffnen. Aber die Methode die von Context aufgerufen wird gibt es gar nicht. Also die openDatabase() Methode. Hier mal das Beispiel:

    Exploring Androids Embedded Database - CIOL Tutorial

    Es muß doch möglich sein zu sehen ob die DB schon da ist oder nicht.
     
  5. swordi, 24.06.2009 #5
    swordi

    swordi Gewerbliches Mitglied

    Beiträge:
    3,389
    Erhaltene Danke:
    441
    Registriert seit:
    09.05.2009
    das beispiel das du hast, ist glaub ich veraltet. funktioniert mit 1.5 nicht mehr

    und er macht es auch über den context

    ctx.openDatabase(...)

    heißt jetzt

    ctx.openOrCreateDatabase()

    dabei wird die datenbank erzeugt, falls es sie noch nicht gibt, oder eben nur eine verbindung zu ihr aufgebaut.

    in eclispe kannst du in der view ddms die datenbanken zu deinen projekten sehen ( data, data, com.deinprojekt.xxx ) dann siehst du zumindest ob sie angelegt wurde.
     

Diese Seite empfehlen