Gibt "Einfügen" in SQLite SQLITE_OK oder SQLITE_DONE zurück?

Was gibt die Anweisung "insert" in SQLite im Erfolgsfall zurück?

Ich habe immer geglaubt, dass es SQLITE_DONE sein sollte, aber kürzlich habe ich in meinen Protokollen die folgende Zeichenfolge herausgefunden:

<code>sqlite3_step error: 'not an error'
</code>

Und hier ist der Code, der die erwähnte Zeichenfolge protokolliert:

<code>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);
</code>

Ich frage mich, warum es in den meisten Fällen funktioniert. Sollte ich SQLITE_DONE in meinem Code in SQLITE_OK ändern?

Vielen Dank.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage