Was sagt die Anweisung "in SQLite einfügen" im Erfolgsfall?Gibt "Einfügen" in SQLite SQLITE_OK oder SQLITE_DONE zurück?
ich immer geglaubt, dass es SQLITE_DONE sein sollte, aber vor kurzem in meinem Logs fand ich die folgende Zeichenfolge aus:
sqlite3_step error: 'not an error'
Und hier ist der Code, der die genannte Zeichenfolge protokolliert:
prepareStatement(addTranslationStmt2, "INSERT INTO translations(lang1_wordid, lang2_wordid) VALUES(?, ?)");
if (!addTranslationStmt2) return -2;
sqlite3_bind_int(addTranslationStmt2, 1, word_id);
sqlite3_bind_int(addTranslationStmt2, 2, translation_id);
if(sqlite3_step(addTranslationStmt2) != SQLITE_DONE)
{
NSLog(@"sqlite3_step error: '%s'", sqlite3_errmsg(database));
sqlite3_reset(addTranslationStmt2);
return -1;
}
sqlite3_reset(addTranslationStmt2);
Ich frage mich, warum es in den meisten Fällen funktioniert. Sollte ich SQLITE_DONE in meinem Code zu SQLITE_OK ändern?
Danke.
Wenn Sie den Fehlercode gedruckt haben, was haben Sie gesehen? –
Überprüfen Sie http://code.google.com/p/database-adt/ – Macarse