sqlite3_setp
這個過程用于執(zhí)行有前面sqlite3_prepare創(chuàng)建的準備語句。這個語句執(zhí)行到結果的第一行可用的位置。繼續(xù)前進到結果的第二行的話,只需再次調用sqlite3_setp()。繼續(xù)調用sqlite3_setp()知道這個語句完成,那些不返回結果的語句(如:INSERT,UPDATE,或DELETE),sqlite3_step()只執(zhí)行一次就返回
函數(shù)定義
int sqlite3_step(sqlite3_stmt*);
返回值
函數(shù)的返回值基于創(chuàng)建sqlite3_stmt參數(shù)所使用的函數(shù),假如是使用老版本的接口sqlite3_prepare()和sqlite3_prepare16(),返回值會是?SQLITE_BUSY,?SQLITE_DONE,?SQLITE_ROW,?SQLITE_ERROR?或?SQLITE_MISUSE,而v2版本的接口sqlite3_prepare_v2()和sqlite3_prepare16_v2()則會同時返回這些結果碼和擴展結果碼。
對所有V3.6.23.1以及其前面的所有版本,需要在sqlite3_step()之后調用sqlite3_reset(),在后續(xù)的sqlite3_ step之前。如果調用sqlite3_reset重置準備語句失敗,將會導致sqlite3_ step返回SQLITE_MISUSE,但是在V3. 6.23.1以后,sqlite3_step()將會自動調用sqlite3_reset。
int sqlite3_reset(sqlite3_stmt *pStmt);
sqlite3_reset用于重置一個準備語句對象到它的初始狀態(tài),然后準備被重新執(zhí)行。所有sql語句變量使用sqlite3_bind*綁定值,使用sqlite3_clear_bindings重設這些綁定。Sqlite3_reset接口重置準備語句到它代碼開始的時候。sqlite3_reset并不改變在準備語句上的任何綁定值,那么這里猜測,可能是語句在被執(zhí)行的過程中發(fā)生了其他的改變,然后這個語句將它重置到綁定值的時候的那個狀態(tài)。
總結
以上是生活随笔為你收集整理的sqlite3_setp的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: openssl-1.0.1e for a
- 下一篇: a5d27 emmc启动 修改2