我很困惑为什么SELECT语句不能正常工作。它不会给我任何错误,只是返回null。我知道它正确写入了字符串,并且正确的字符串在那里,只是没有正确读取。据我所知,一切都是正确的,因为我对许多与此类似的其他方法/功能使用相同的SQLstmt“方法”。这一点对于为什么它不起作用没有意义。

- (NSString *)returnNote {
    selStmt=nil;

    NSLog(@"Reading note");

    NSString *SQLstmt = [NSString stringWithFormat:@"SELECT 'Notes' FROM '%@' WHERE Exercises = '%@';", currentRoutine, currentExercise];

    // Build select statements
    const char *sql = [SQLstmt UTF8String];

    if (sqlite3_prepare_v2(database, sql, -1, &selStmt, NULL) != SQLITE_OK) {
        selStmt = nil;
    }

    // Building select statement failed
    if (!selStmt) {
        NSAssert1(0, @"Can't build SQL to read Exercises [%s]", sqlite3_errmsg(database));
    }

    NSString *note = [NSString stringWithFormat:@"%s", sqlite3_column_text(selStmt, 0)];

    sqlite3_reset(selStmt); // reset (unbind) statement

    return note;
}

最佳答案

您不是在呼叫sqlite3_step。该语句从不执行。

10-07 23:09