5 Stimmen

sqlite3_open liefert immer SQLITE_OK?

Neugierig über dieses... es scheint, dass selbst wenn ich die pathForResource zu @ "fadfdasfa" oder anderen nicht existierenden Namen ändern, ich immer noch "Datenbank geöffnet" protokollieren?

sqlite3 * myDatabase;

NSString *path = [[NSBundle mainBundle] pathForResource:@"carsdatabase" ofType:@"db"];

    if (sqlite3_open([path UTF8String], &myDatabase) == SQLITE_OK)
        NSLog(@"Database Opened");
    else 
        NSLog(@"Failed to Open");

8voto

勿绮语 Punkte 8962

Die Datenbank wird für Sie erstellt, wenn sie noch nicht vorhanden ist.

7voto

Rasoul Punkte 3581

Öffnen Sie die Datenbank wie folgt:

std::string filename("mydatabase.db");
sqlite3 *db;
int rc = sqlite3_open_v2(filename.c_str(), &db, SQLITE_OPEN_READWRITE, NULL);

Dann wird ein Fehlercode (14) zurückgegeben, wenn die Datenbankdatei nicht existiert. Wenn die Datei jedoch existiert, aber keine gültige Datenbank ist, gibt es SQLITE_OK ¡!

1voto

M.Othman Punkte 4882

Das ist so, als ob Sie folgendes im Terminal ausführen würden:

sqlite3 test.db

Wenn er nicht vorhanden ist, wird er für Sie erstellt. Sie erstellen also einfach jedes Mal eine neue Datenbank, wenn Sie den Namen ändern, und wahrscheinlich werden Sie sie in Ihrem Hauptbündel sehen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X