Запись в sqlite db с использованием fmdb? - PullRequest
0 голосов
/ 10 июля 2010

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

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

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

, где я изменяю строку selectAll с инструкции SELECT на инструкцию INSERT INTO и передаю ее переменной book ввставить, но это не похоже на работу ...

Чего мне не хватает?Что мне нужно сделать, чтобы иметь возможность писать в мою базу данных sqlite ??Спасибо!

Ответы [ 2 ]

5 голосов
/ 21 ноября 2010

Чтобы вставить, вы должны сделать что-то вроде этого, где db - это ссылка на вашу базу данных FMD:

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

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

2 голосов
/ 21 ноября 2010
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];
...