2013-02-21 3 views
0

Привет всем Я пытаюсь вставить некоторые значения в свою базу данных в AppDelegate в Application didFinishLaunchingWithOptions, но каждый раз, когда он не вставляет данные. Пожалуйста, помогите мне.Вставка в таблицу не работает с FMDB

код

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *docsPath = [paths objectAtIndex:0]; 
NSString *path = [docsPath stringByAppendingPathComponent:@"db.sqlite"]; 
FMDatabase *database = [FMDatabase databaseWithPath:path]; 
[database open]; 
FMResultSet *results = [database executeQuery:@"select * from settings"]; 
if(results == nil) 
{ 
NSLog(@"Creating DB"); 
[database beginTransaction]; 
[database executeUpdate:@"create table settings(id int primary key, defaultaction text, beepsound text, vibrateeffect text, level text)"]; 
NSString *query = [NSString stringWithFormat:@"insert into settings(id,defaultaction,beepsound,vibrateeffect,level) values (%d, '%@', '%@','%@','%@',)",11,@"auto", @"YES", @"YES", @"HIGH"]; 
NSLog(@" %@",path); 
BOOL y= [database executeUpdate:query]; 
if (!y) 
{ 
NSLog(@"insert failed!!"); 
} 

[database commit]; 
[database close]; 


} 
+1

Разве API не предоставляет вам никаких сообщений об ошибках? Если нет, то вы должны прекратить использовать его, так как это дерьмо. Если да, то извлеките их и сообщите о них. – trojanfoe

+1

@trojanfoe ... Я использовал это очень долго, и он работал очень хорошо. Сегодня утром я нашел этот вопрос. Я не могу понять, что делать ... – Saty

+0

Как я уже сказал, извлеките сообщение об ошибке, и это даст вам ключ. Без этого сообщения об ошибке никто не сможет вам помочь. – trojanfoe

ответ

2

я думаю, что проблема в вашем коде вставки запроса

NSString *query = [NSString stringWithFormat:@"insert into settings(id,defaultaction,beepsound,vibrateeffect,level) values (%d, '%@', '%@','%@','%@',)",11,@"auto", @"YES", @"YES", @"HIGH"]; 

Вы добавили еще один, наконец, в значениях() проверить и удалить последний, его будет определенно работать

NSString *query = [NSString stringWithFormat:@"insert into settings(id,defaultaction,beepsound,vibrateeffect,level) values (%d, '%@', '%@','%@','%@')",11,@"auto", @"YES", @"YES", @"HIGH"]; 

попробуйте этот запрос

+0

отличный мужчина .... такая сильная ошибка !!! – Saty

+0

hmmm много раз это случается со мной также –

1
NSString *query = @"INSERT into settings(id,defaultaction,beepsound,vibrateeffect,level) 
VALUES (%@, %@, %@,%@,%@)"; 

BOOL y = [database executeUpdate:query, [NSNumber numberWithInt:11],@"auto", @"YES", @"YES", @"HIGH"]; 

Попробуйте изменить запрос на указанный выше запрос, он будет работать точно, если таблица была успешно создана.

Удачи.

Смежные вопросы