Форум программистов, компьютерный форум, киберфорум
Objective-C
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 16
1

Компиляция запроса в байт-код

05.05.2013, 20:38. Показов 2026. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток!
Никак не получается скомпилировать в байт код запрос перед отправкой в базу....
Вот кусок кода:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Получаем путь к базе данных
    NSString * path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"DataBase.sql"];
    
    // Открываем базу данных
    if (sqlite3_open([path UTF8String], &database) == SQLITE_OK) {
        // Запрашиваем id городов
        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));
    }
Вот база:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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
1
if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2013, 20:38
Ответы с готовыми решениями:

Компиляция C# кода сразу в байт код
Возможно ли скомпилировать простейшую программу Hello World сразу в байт код, минуя MSIL, JIT, CLR?...

[python2] Компиляция "на лету". Как сохранить байт-код в файл?
#!/usr/bin/env python2 text = '''\ def get42(): return 42 ''' code = compile(text,...

Байт-код
Вопрос таков, всегда ли Python на предварительном этапе создает байт код или нет? В некоторой...

Байт-код
как посчитать суму байт-кодов всех символов даной строки?

11
Эксперт функциональных языков программированияЭксперт Java
4486 / 2721 / 485
Регистрация: 28.04.2012
Сообщений: 8,590
06.05.2013, 07:46 2
Не знаю как в данном случае, но в других языках сталкивался с тем, что запросы без параметров нельзя подготовить (prepare).
1
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
06.05.2013, 11:49 3
А через CoreData не лучше?
1
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 16
06.05.2013, 16:36  [ТС] 4
Цитата Сообщение от mobidevelop Посмотреть сообщение
А через CoreData не лучше?
Может конечно и лучше, но я не знаю как...

Добавлено через 3 часа 42 минуты
Цитата Сообщение от mobidevelop Посмотреть сообщение
А через CoreData не лучше?
Напиши "в двух словах" как.....
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
06.05.2013, 16:38 5
В двух словах - "Core Data". Только писать в гугле надо.
0
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
07.05.2013, 02:10 6
Novichok2, в двух словах и правда никак. CoreData очень объемная тема. Как ни новый проект - так горы понимания, баги, чтото не так, злость, а потом радость и счастье.
1
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 16
10.05.2013, 01:28  [ТС] 7
Ребят........ Я тут по гуглу посмотрел. Все показывают работу CoreData с SQL, которые создаются в самом проекте с типом .xcdatamodeld, а у меня сторонняя, которую я просто кинул, как файл с типом .sql.

Добавлено через 10 часов 21 минуту
Цитата Сообщение от zulkis Посмотреть сообщение
Novichok2, в двух словах и правда никак. CoreData очень объемная тема. Как ни новый проект - так горы понимания, баги, чтото не так, злость, а потом радость и счастье.
Я тут по гуглу посмотрел. Все показывают работу CoreData с SQL, которые создаются в самом проекте с типом .xcdatamodeld, а у меня сторонняя, которую я просто кинул, как файл с типом .sql.
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
10.05.2013, 02:58 8
CoreData по-умолчанию работает с SQLite, а сам файлик *.sqlite создается в папке Documents в директории самого приложения на девайсе или симуляторе, там его и можно посмотреть, но суть в том, что вы напрямую не работаете с sql запросами, CoreData это делает за вас и читает\пишет сам из этого файла, вы же работаете с базой данных при помощи привычной объектной модели и она уже мапится в sqlite бд.
Конечно, можно настроить CoreData для работы с разными типа хранилищ данных.

Если проект не в самом разгаре и вы только учитесь, то лучше разберитесь с CoreData, так как голый sql\sqlite никто почти не использует и все работают с хранением данных при помощи CoreData.
1
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 16
11.05.2013, 16:23  [ТС] 9
Цитата Сообщение от Vorona Посмотреть сообщение
CoreData по-умолчанию работает с SQLite, а сам файлик *.sqlite создается в папке Documents в директории самого приложения на девайсе или симуляторе, там его и можно посмотреть, но суть в том, что вы напрямую не работаете с sql запросами, CoreData это делает за вас и читает\пишет сам из этого файла, вы же работаете с базой данных при помощи привычной объектной модели и она уже мапится в sqlite бд.
Конечно, можно настроить CoreData для работы с разными типа хранилищ данных.

Если проект не в самом разгаре и вы только учитесь, то лучше разберитесь с CoreData, так как голый sql\sqlite никто почти не использует и все работают с хранением данных при помощи CoreData.
А у меня файл с типом .sql, а не .sqlite. Я даже не знаю, Core Data работает с ним? Везде где я смотрел были .sqlite(sample code'ы и т.д.)
0
Peace 2 all shining faces
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
11.05.2013, 17:43 10
Цитата Сообщение от Novichok2 Посмотреть сообщение
А у меня файл с типом .sql, а не .sqlite. Я даже не знаю, Core Data работает с ним? Везде где я смотрел были .sqlite(sample code'ы и т.д.)
Вроде бы работает нормально, как с *.sql, так и c *.sqlite, а так же *.db, не уверен на 100%

Ну, а если и нет, у вас какой-то проект уже в разгаре или существует база данных на миллионы записей и вы с ней должны работать?
Если этот файлик DataBase.sql не так важен для вас, то забейте на этот голый SQLite и переходите на CoreData, пусть он сам занимается такой чепухой.
1
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 16
13.05.2013, 14:19  [ТС] 11
Цитата Сообщение от Vorona Посмотреть сообщение
Вроде бы работает нормально, как с *.sql, так и c *.sqlite, а так же *.db, не уверен на 100%

Ну, а если и нет, у вас какой-то проект уже в разгаре или существует база данных на миллионы записей и вы с ней должны работать?
Если этот файлик DataBase.sql не так важен для вас, то забейте на этот голый SQLite и переходите на CoreData, пусть он сам занимается такой чепухой.
Не, походу не работает... Пишет, что файл по данному пути не может быть SQL базой данных.
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
13.05.2013, 14:37 12
А если переименовать?
0
13.05.2013, 14:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.05.2013, 14:37
Помогаю со студенческими работами здесь

Байт-код микропрограммы
Добрый день! Уважаемые форумчане, помогите разобраться со следующим вопросом. Есть ли в...

jvm Байт код
Дан *.class файл. Декомпилировать, изменить, потом закомпилировать обратно нельзя. Тестер выдаст...

Декомпиляция Flash и байт код
Здравствуйте, декомпилировал Flash ролик и там лежат два action script, один из них я открыл легко,...

Конвертация С исходников в байт код
Доброго времени суток Существует ли библиотека для Java (нужно, чтобы работало под Андроид),...

DataContractJsonSerializer сериализует в байт код
Пытаюсь сериализовать список объектов в json class Store { private...

Компиляция в машинный код
Подскажите, пожалуйста, как и с помощью чего скомпилировать проект написанный в VStudio на C# в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru