3
sqlite3_prepare_v2
を使用する場合は、すべてのパスでsqlite3_finalize
に電話する必要がありますか、成功した場合のみですか?例えば、ここで私はスウィフトの方法で使用しているコードです:それは正常に実行されなかった場合でも、ステートメントが正常に準備されて以来準備ができていない声明を完成させる必要がありますか?
let prepare = sqlite3_prepare_v2(db!, SQLString, -1, &delete, nil)
if (prepare == SQLITE_OK){
if !(sqlite3_step(delete) == SQLITE_DONE){
sqlite3_finalize(delete) // *
sqlite3_close(db)
return
}
} else {
// **
sqlite3_close(db)
return
}
sqlite3_finalize(delete)
sqlite3_close(db)
// rest of method continues if it didn't fail
は*私は、私はここでそれを呼び出す必要があると仮定し
**しかし、私はここでそれを呼び出す必要がありますか?
は私がちょうど正常に準備がなかったものを含め、「すべてのプリペアドステートメントを確定しなければならない」かどうかについては明らかではなかった、ということを見https://www.sqlite.org/c3ref/finalize.html –
を参照してください。 –