執行宣告

使用諸如 sqlite3_prepare_v2()類的函式構造語句。

必須使用 sqlite3_finalize() 清除準備的語句物件。如果出現錯誤,請不要忘記這一點。

如果使用引數 ,請使用 sqlite3_bind_xxx() 函式設定其值。

實際執行發生在呼叫 sqlite3_step() 時。

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 */;
}

sqlite3_bind_int (stmt, 1, 42);                          /* ID */
sqlite3_bind_text(stmt, 2, "Bob", -1, SQLITE_TRANSIENT); /* name */

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

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