Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > iOS > Компиляция запроса в байт-код


Автор: DimaMakhnach 14.5.2013, 17:19
Доброго времени суток!
Никак не получается скомпилировать в байт код запрос перед отправкой в базу....
Вот кусок кода(Objective-C):
Код

    NSString * path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"DataBase.sql"];
    
    if (sqlite3_open([path UTF8String], &database) == SQLITE_OK) {

        const char *sql = "SELECT id FROM city_";
        sqlite3_stmt *statement;
        
        if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
            while (sqlite3_step(statement) == SQLITE_ROW) {
                _id = sqlite3_column_int(statement, 0);
            }
        }
        
        sqlite3_finalize(statement);
    } else {
        sqlite3_close(database);
        NSAssert1(NO, @"Failed to open database with message '%s'.", sqlite3_errmsg(database));
    }

Вот база:
Код

INSERT INTO `city_` (`id`, `id_region`, `id_country`, `oid`, `city_name_ru`, `city_name_en`) VALUES
(17849, 1611, 219, 4400, 'Москва', 'Moscow'),
(17850, 1611, 219, 4421, 'Подольск', 'Podolsk'),
(17851, 1611, 219, 4371, 'Коломна', 'Kolomna'),
(17852, 1611, 219, 4358, 'Зеленоград', 'Zelenograd'),
(17853, 1611, 219, 4438, 'Сергиев Посад', 'Sergiev Posad'),
(17854, 1611, 219, 4313, 'Абрамцево', 'Abramtsevo'),
(17855, 1611, 219, 4314, 'Алабино', 'Alabino'),
(17856, 1611, 219, 4315, 'Апрелевка', 'Aprelevka'),
(17857, 1611, 219, 4316, 'Архангельское', 'Arhangelskoe'),
(17858, 1611, 219, 4317, 'Ашитково', 'Ashitkovo'),
(17859, 1611, 219, 7592923, 'Байконур', 'Baikonur'),
(17860, 1611, 219, 4318, 'Бакшеево', 'Baksheevo'),
(17861, 1611, 219, 4319, 'Балашиха', 'Balashiha'),
(17862, 1611, 219, 4320, 'Барыбино', 'Barybino'),
(17863, 1611, 219, 58417705, 'Белозёрский', 'Belozerskii'),
(17864, 1611, 219, 4321, 'Белоомут', 'Beloomut');

Никак не проходит строка(Objective-C):
Код

if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK)

Автор: Bitter 14.5.2013, 18:22
Советую использовать CoreData для работы с БД

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)