sqlite3 вставка не выполняется после -> вставка в -> SQLITE_DONE - PullRequest
0 голосов
/ 09 апреля 2010

Я пытаюсь вставить некоторые данные в таблицу, используя sqlite3 на iphone ... Все коды ошибок, которые я получаю на разных этапах, указывают на то, что операция должна была быть успешной, но на самом деле таблица остается пустой ... Мне кажется, что-то не хватает ...

здесь код:

sqlite3 *database = nil;
NSString *dbPath = [[[ NSBundle mainBundle ] resourcePath ] stringByAppendingPathComponent:@"placemarks.sql"];

if(sqlite3_open([dbPath UTF8String], &database) == SQLITE_OK){

sqlite3_stmt *insert_statement = nil;
//where int pk, varchar name,varchar description, blob picture
static char *sql = "INSERT INTO placemarks (pk, name, description, picture) VALUES(99,'nnnooooo','dddooooo', '');";
    if (sqlite3_prepare_v2(database, sql, -1, &insert_statement, NULL) != SQLITE_OK) {
        NSAssert1(0, @"Error: failed to prepare statement with message '%s'.", sqlite3_errmsg(database));
    }

int success = sqlite3_step(insert_statement);

int finalized = sqlite3_finalize(insert_statement);

NSLog(@"success: %i finalized: %i",success, finalized);

NSAssert1(101, @"Error: failed to insert into the database with message '%s'.", sqlite3_errmsg(database));


sqlit3_step returns 101, so SQLITE_DONE, which should be ok..

Если я выполню оператор sql в командной строке, он будет работать правильно ...

у кого-нибудь есть идея? может ли быть проблема в написании placemarks.sql, потому что он находится в папке ресурсов?

1010 * Rgds *

От

1 Ответ

0 голосов
/ 09 апреля 2010

Узнал что это было! как я думал ... я не могу изменить * .sql, который находится в папке ресурсов, я должен сначала сделать копию в документах приложения и использовать эту копию!

...