Xcode sqlite3似乎无法正常工作

时间:2013-01-20 17:40:15

标签: xcode sqlite

我现在使用最新的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是correkt。

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

1 个答案:

答案 0 :(得分:2)

您错误地使用了sqlite3_exec。它返回结果代码,而不是索引。结果代码0是SQLITE_OK,而结果代码1是SQLITE_ERROR

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