SQLite Datenbank Problem

J

joschika77

Fortgeschrittenes Mitglied
1
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.
 
Geht das mit dem Emulator überhaupt? Oder is die erstellte DB dann immer wieder weg wenn ich den Emu starte? HAt jemand damit Erfahrug?
 
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.
 
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.
 
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.
 

Ähnliche Themen

R
Antworten
6
Aufrufe
997
swa00
swa00
S
Antworten
33
Aufrufe
2.659
Sempervivum
S
Zurück
Oben Unten