2011-05-29 104 views
2

我怎樣才能弄清楚,sqlite3的是給我的錯誤,當我做一個SQL調用:sqlite3的錯誤 - iOS設備

int success = sqlite3_prepare_v2(database, sql, -1, &stmt, NULL); 

if(success != SQLITE_OK) { 
    NSLog(@"create stmt failed %@",stmt); 
} 

所有我知道的是,如果它失敗了,但有沒有辦法讓實際錯誤,或者失敗的原因?

回答

3

當然,如果success != SQLITE_OK,那麼它一定是這些錯誤代碼之一:

http://www.sqlite.org/c3ref/c_abort.html

+0

如何獲取錯誤代碼? – CodeGuy 2011-05-29 23:23:10

+1

「成功」變量包含錯誤代碼。 'SQLITE_OK'只是衆多錯誤代碼之一。 'sqlite3_prepare_v2()'函數返回錯誤代碼。 – rid 2011-05-29 23:24:30

15

可以使用sqlite3_errmsg功能。你需要傳入數據庫句柄。以下代碼將記錄錯誤

NSLog(@"Error %s while preparing statement", sqlite3_errmsg(_dbHandle)); 
+0

感謝隊友,唯一有效的答案! – 2013-02-11 18:20:04

+1

來澄清「dbHandle」是來自問題的「數據庫」 – 2015-02-11 19:59:00