Исходя из фона, отличного от SQL, я создаю простую таблицу с именем test с 3 полями:
NSString *testtable = @"create table if not exists test(testid integer primary key, userid integer, contentid text)";
if (![db executeUpdate:testtable]) {
NSLog(@"create test, %d:%@", [db lastErrorCode], [db lastErrorMessage]);
return NO;
}
когда я вставляю запись в таблицу, я получаю ошибку exc_bad_access:
if (![db executeUpdate:@"insert into test values(?,?,?)", NULL, 1, @"HELLO"]) {
NSLog(@"insert test, %d:%@", [db lastErrorCode], [db lastErrorMessage]);
return NO;
}
Если я изменю тип столбца «userid» с целого на текстовый, это будет работать хорошо. И я тестирую таблицу с помощью команды sqlite на консоли, она тоже работает хорошо. Что вы думаете, ребята? Спасибо...
я пробую другой способ справиться с этой проблемой:
if (![db executeUpdate:@"insert into test values(?,?,?)", NULL, [NSNumber numberWithInt:1], @"HELLO"]) {
NSLog(@"testint, %d:%@", [db lastErrorCode], [db lastErrorMessage]);
return NO;
}
тогда это работает. Не могу сказать в чем причина... Возможно, fmdb поддерживает только вставку объектов.