【发布时间】:2013-01-30 12:25:31
【问题描述】:
在很大程度上遵循Ray Wenderlich's SQLite tutorial,我正在编写一个相当简单的应用程序,该应用程序显示从服务器下拉的信息。我的 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() 的返回值存储为 @ 987654325@ 并对照SQLITE_OK 检查那个。打电话给sqlite_errmsg()怎么样?
我确实研究了sqlite_exec(),但我没有任何运气尝试编译,而且我对自己理解 C 中的回调以正确维护使用它们的代码没有足够的信心。不过,它传递了一个错误参数,这就是让我首先研究它的原因。
【问题讨论】:
标签: ios objective-c c error-handling sqlite