0
試圖返回iPhone上的SQLite中是否存在記錄,除非我一直收到'未知錯誤'。當選擇總記錄數時,iPhone上SQLite的'未知錯誤'
selectStmt是static sqlite3_stmt *selectStmt = nil;
這裏使用的if(selectStmt) sqlite3_finalize(selectStmt);
它只在應用程序終止時才被執行。這個功能適用於刪除語句和插入語句,所以我猜測下面的邏輯是有問題的?
- (BOOL) doesBookExist {
if(selectStmt == nil) {
const char *sql = "select count(*) from books where isbn = ?";
if(sqlite3_prepare_v2(database, sql, -1, &selectStmt, NULL) != SQLITE_OK)
NSAssert1(0, @"Error while creating select statement. '%s'", sqlite3_errmsg(database));
}
//When binding parameters, index starts from 1 and not zero.
int count = sqlite3_bind_text(selectStmt, 1, [isbn UTF8String], -1, SQLITE_TRANSIENT);
if (SQLITE_DONE != sqlite3_step(selectStmt))
NSAssert1(0, @"Error while selecting. '%s'", sqlite3_errmsg(database));
sqlite3_reset(selectStmt);
return (count > 0);
}
這是非常有意義的,它的工作原理是如何我希望它的工作。謝謝。 – fuzz 2010-07-05 23:28:42
'isbn'是什麼? – Sridhar 2014-03-19 05:16:59
@Sridhar,http://en.wikipedia.org/wiki/ISBN。但是它也是這個代碼中的一個列名和一個變量。 – 2014-03-19 23:05:38