0

我现在使用最新的 Xcode 和 sqlite3 工作了 4 天,我对它有点疯狂,因为我的行为令人毛骨悚然。

我这样做:

NSString *selectWPIDQuery = [NSString stringWithFormat:@"SELECT ID FROM WORKOUTPLANS WHERE NAME = '%s';", [[aWorkoutPlan name] UTF8String]];
//NSLog(@"%@", [aWorkoutPlan name]);
const char *select_wp_id_query = [selectWPIDQuery UTF8String];

if(sqlite3_open([dbPathString UTF8String], &workoutPlansDB) == SQLITE_OK) {

    int index = sqlite3_exec(workoutPlansDB, select_wp_id_query, NULL, NULL, &error);
    NSLog(@"Der Index %d", index);
}

这里的索引是 0 但 0 不存在。如果我使用 firefox 插件 sqlite 管理器(完全相同的查询)执行此查询,它会为我提供索引 1 并且索引 1 是正确的。

为什么xcode中的地狱sqlite3给我一个0???那是不正确的。

4

1 回答 1

2

您使用sqlite3_exec不正确。它返回结果代码,而不是索引。结果代码 0 是SQLITE_OK,而结果代码 1 是SQLITE_ERROR

请参阅sqlite3_exec文档。您必须提供回调以获取查询结果,或使用通用sqlite3_prepare_v2()sqlite3_step()sqlite3_finalize()API。

于 2013-01-20T17:50:31.910 回答