簡體   English   中英

如果sqlite3_prepare_v2()返回錯誤代碼,我如何獲取錯誤代碼?

[英]How do I grab the error code if sqlite3_prepare_v2() returns one?

很大程度上遵循Ray Wenderlich的SQLite教程 ,我正在編寫一個相當簡單的應用程序,顯示從服務器下載的信息。 我的SQLite查詢的基本結構(對本地數據庫,而不是服務器)如​​下:

{
    NSMutableArray *list = [[NSMutableArray alloc] init];
    NSString *query = @"SELECT _id, type FROM table ORDER BY type"; // As appropriate.
    sqlite3_stmt *statement;

    if (sqlite3_prepare_v2(_db, [query UTF8String], -1, &statement, nil) == SQLITE_OK) {
        while (sqlite3_step(statement) == SQLITE_ROW) {
            // Process the returned values...
            int rowNumber = sqlite3_column_int(statement, 0);

            // Initialize the object.
            // Push the object onto the array.
        }
        sqlite3_finalize(statement);
    } else {
        // Log the error.
    }
    return list;
}

我的問題是, 如果if語句返回false,檢查錯誤的最佳方法什么? 對我來說,最簡單的解決方法似乎就是存儲的返回值sqlite3_prepare_v2()int和檢查SQLITE_OK 怎么樣調用sqlite_errmsg()

我確實研究了sqlite_exec()但是我沒有運氣來進行編譯,而且我對C中回調的理解不足以確保正確維護使用它們的代碼。 它傳遞了一個錯誤的參數,這是讓我首先看到它的原因。

如果要獲取錯誤消息,則必須確實調用sqlite3_errmsg

sqlite3_exec會給你相同的字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM