Looking for sqlite Answers? Try Ask4KnowledgeBase
Looking for sqlite Keywords? Try Ask4Keywords

sqlite Eine vorbereitete Anweisung mehrmals ausführen


Beispiel

Nachdem eine Anweisung ausgeführt wurde , wird sie durch einen Aufruf von sqlite3_reset () wieder in den ursprünglichen Zustand versetzt, damit sie erneut ausgeführt werden kann.

Während die Anweisung selbst gleich bleibt, werden die Parameter normalerweise geändert:

const char *sql = "INSERT INTO MyTable(ID, Name) VALUES (?, ?)";
sqlite3_stmt *stmt;
int err;

err = sqlite3_prepare_v2(db, sql, -1, &stmt, NULL);
if (err != SQLITE_OK) {
    printf("prepare failed: %s\n", sqlite3_errmsg(db));
    return /* failure */;
}

for (...) {
    sqlite3_bind_int (stmt, 1, ...);   /* ID */
    sqlite3_bind_text(stmt, 2, ...);   /* name */

    err = sqlite3_step(stmt);
    if (err != SQLITE_DONE) {
        printf("execution failed: %s\n", sqlite3_errmsg(db));
        sqlite3_finalize(stmt);
        return /* failure */;
    }

    sqlite3_reset(stmt);
}

sqlite3_finalize(stmt);
return /* success */;