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ドキュメントを参照してください。クエリ結果を取得するためのコールバックを提供するか、汎用、、、およびAPIを使用する必要がsqlite3_prepare_v2()ありsqlite3_step()ますsqlite3_finalize()

于 2013-01-20T17:50:31.910 に答える