2010-07-10 5 views
0

Итак, я понимаю, что fmdb полностью устарел, а основные данные - там, где он находится, но на данный момент мне просто нужно настроить приложение, над которым я работаю, и использует fmdb для чтения из базы данных sqlite в папке ресурсов.Запись в sqlite db с использованием fmdb?

Мне нужно уметь писать на мой дБ. Каков наилучший способ выполнения запросов? Я пытался делать то же самое, что я делаю для чтения из БДА:

FMResultSet * set = [[UIApp database] executeQuery:[customQueries selectAll], book]; 

Где я могу изменить строку SelectAll от того, чтобы быть ЗЕЬЕСТОМ в бытии INSERT INTO заявления, и я передать его в переменную книге для вставки, но это, похоже, не работает ...

Что мне не хватает? Что я должен делать, чтобы писать на свой sqlite db? Благодаря!

+2

'fmdb' не устарел, он активно развивается. ;) – Pascal

ответ

2
FMDatabase* db = [FMDatabase databaseWithPath:dbPath]; 

FMResultSet *rs = [db executeQuery:@"select * from table"]; 
while ([rs next]) { 
    NSLog(@"%d", [rs intForColumn:@"id"]; 
} 

// Close the result set. 
[rs close]; 

// Close the database. 
[db close]; 
+0

Вы забыли открыть свою базу данных, но в противном случае она по-прежнему неверна, поскольку они просят способ вставить и обновить базу данных, а не выбирать записи данных. –

5

Для вставки вы могли бы сделать что-то вроде этого, где дБ является ссылкой на ваш FMDatabase:

[db executeUpdate:@"insert into theTable (field1, field2) values(?, ?)", 
    theField1, theField2, nil]; 

Убедитесь, что это ноль в конце списка параметров (2 вопросительные знаки в запрос означает два параметра и нуль) и убедитесь, что вы используете NS-типы в качестве параметров. Если вы попытаетесь использовать int в качестве параметра, он будет разбит, вам нужно будет использовать NSNumber.

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