"Bibliothek-Routine Aufgerufen, die Out-Of-Sequence" sqlite3_prepare_v2(TABELLE ERSTELLEN)
Wissen Sie, warum bekomme ich "Library-Routine Namens Out-Of-Sequence", wenn ich rufe sqlite3_prepare_v2(CREATE TABLE)
auf eine leere Datenbank?
Ich eine leere Datenbank erstellen und öffnen Sie es dann. Später habe ich speichern Sie alle Daten, die geschrieben werden, um die Datenbank im RAM (brauche ich, um zu speichern, dass die Informationen im RAM-und Spülen Sie es in den permanenten Speicher am Ende der Ausführung), aber ich bekomme diese Fehlermeldung, wenn ich rufe sqlite3_prepare_v2(CREATE TABLE)
. Es gibt "Bibliothek-Routine Aufgerufen, die Out-Of-Sequence" als Fehlermeldung.
Mache ich öffne meine Datenbank korrekt und (ich dachte, dass es sein kann, ein problem, also ich habe close()
meine DB und dann open()
rechts vor dem Aufruf sqlite3_prepare_v2(CREATE TABLE)
). Ich dachte, es könnte sein, weil der thread-Parallelität, aber mit kritischen Abschnitt nicht zu helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, was die Dokumentation sagt über die Ursachen für den Fehler:
Erwähnt Sie haben versucht, einen kritischen Abschnitt, so dass ich denke, wir können ausschließen, #2. Dein Fehler ist ein Ergebnis des Aufrufs sqlite3_prepare_v2(...), nicht sqlite3_step() oder oder sqlite3_bind(), also denke ich, dass nur die Blätter #1? Können Sie überprüfen, dass Ihre db-pointer ist gut? Sie zurückzuverfolgen, um die sqlite3_open (), dass es zurück und stellen Sie sicher, dass nichts geschlossen ist, bevor Sie Ihre Vorbereitung heißt?
Diese funktioniert bei mir:
Alle oben genannten Lösungen richtig sind.
Da in meinem Fall ich habe den Fehler viele Male nach, dass ich den code Zeile für Zeile und ich fand mein Fehler
In meinem Fall war es ein string enthalten einige Sonderzeichen, wie es war ( ' ) einzigen Doppelpunkt ersetzt habe ich es mit (" ") ein Leerzeichen und es beginnt zu arbeiten. [yourString stringByReplacingOccurrencesOfString:@"'" withString:@""]