У меня есть данные, хранящиеся в базе данных sqlite3, и у меня есть несколько мест, которые я читаю и записываю данные в базу данных и из нее. Проблема, с которой я сталкиваюсь, заключается в том, что если SQL-запрос становится очень длинным, метод sqlite3_prepare_v2 возвращает ошибку.sqlite3_prepare_v2 лимит символов?
Этот код работает:
NSString *strSQL = @"UPDATE commandList SET displayName=?, type=?, formula=?, controlButton=?, sort=? WHERE pk=?;";
const char *sql = [strSQL UTF8String];
if (sqlite3_prepare_v2(database, sql, -1, &dehydrate_statment, NULL) != SQLITE_OK) {
NSLog(@"Error: failed to create update statement with message '%@'.", sqlite3_errmsg(database));
}
Но этот код ошибки вне:
NSString *strSQL = @"UPDATE commandList SET displayName=?, type=?, formula=?, onFormula=?, offFormula=?, controlButton=?, sort=? WHERE pk=?;";
const char *sql = [strSQL UTF8String];
if (sqlite3_prepare_v2(database, sql, -1, &dehydrate_statment, NULL) != SQLITE_OK) {
NSLog(@"Error: failed to create update statement with message '%@'.", sqlite3_errmsg(database));
}
примечание единственное различие заключается в первой линии.
Какая ошибка возвращается? – xyzzycoder
Проблема - это не слишком длинный запрос, но, вероятно, что-то со значениями onFormula и offFormula. Как и xyzz передо мной, я хочу, чтобы вы опубликовали сообщение об ошибке. –
Вероятно, это ошибка со значениями или нарушением какого-либо ограничения. – cheez