Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Novichok2
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 16
#1

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

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

Доброго времени суток!
Никак не получается скомпилировать в байт код запрос перед отправкой в базу....
Вот кусок кода:
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)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2013, 20:38     Компиляция запроса в байт-код
Посмотрите здесь:

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

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
korvin_
1711 / 1249 / 190
Регистрация: 28.04.2012
Сообщений: 4,522
06.05.2013, 07:46     Компиляция запроса в байт-код #2
Не знаю как в данном случае, но в других языках сталкивался с тем, что запросы без параметров нельзя подготовить (prepare).
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
06.05.2013, 11:49     Компиляция запроса в байт-код #3
А через CoreData не лучше?
Novichok2
0 / 0 / 0
Регистрация: 13.04.2013
Сообщений: 16
06.05.2013, 16:36  [ТС]     Компиляция запроса в байт-код #4
Цитата Сообщение от mobidevelop Посмотреть сообщение
А через CoreData не лучше?
Может конечно и лучше, но я не знаю как...

Добавлено через 3 часа 42 минуты
Цитата Сообщение от mobidevelop Посмотреть сообщение
А через CoreData не лучше?
Напиши "в двух словах" как.....
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
06.05.2013, 16:38     Компиляция запроса в байт-код #5
В двух словах - "Core Data". Только писать в гугле надо.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
07.05.2013, 02:10     Компиляция запроса в байт-код #6
Novichok2, в двух словах и правда никак. CoreData очень объемная тема. Как ни новый проект - так горы понимания, баги, чтото не так, злость, а потом радость и счастье.
Novichok2
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.
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,276
10.05.2013, 02:58     Компиляция запроса в байт-код #8
CoreData по-умолчанию работает с SQLite, а сам файлик *.sqlite создается в папке Documents в директории самого приложения на девайсе или симуляторе, там его и можно посмотреть, но суть в том, что вы напрямую не работаете с sql запросами, CoreData это делает за вас и читает\пишет сам из этого файла, вы же работаете с базой данных при помощи привычной объектной модели и она уже мапится в sqlite бд.
Конечно, можно настроить CoreData для работы с разными типа хранилищ данных.

Если проект не в самом разгаре и вы только учитесь, то лучше разберитесь с CoreData, так как голый sql\sqlite никто почти не использует и все работают с хранением данных при помощи CoreData.
Novichok2
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'ы и т.д.)
Vorona
Peace 2 all shining faces
668 / 530 / 45
Регистрация: 05.03.2010
Сообщений: 1,276
11.05.2013, 17:43     Компиляция запроса в байт-код #10
Цитата Сообщение от Novichok2 Посмотреть сообщение
А у меня файл с типом .sql, а не .sqlite. Я даже не знаю, Core Data работает с ним? Везде где я смотрел были .sqlite(sample code'ы и т.д.)
Вроде бы работает нормально, как с *.sql, так и c *.sqlite, а так же *.db, не уверен на 100%

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

Ну, а если и нет, у вас какой-то проект уже в разгаре или существует база данных на миллионы записей и вы с ней должны работать?
Если этот файлик DataBase.sql не так важен для вас, то забейте на этот голый SQLite и переходите на CoreData, пусть он сам занимается такой чепухой.
Не, походу не работает... Пишет, что файл по данному пути не может быть SQL базой данных.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2013, 14:37     Компиляция запроса в байт-код
Еще ссылки по теме:

JIT компиляция в машинный код - .NET
Написал на MSIL функцию вызова unmanaged кода. При отладке в OLLY заметил много непонятного машинного кода. Те места, где мне все понятно,...

Компиляция Си и С++. Скомпилируется ли приведенный код - C (СИ)
Возможно ли скомпилить такое? main.cpp #include <stdio.h> #include "file.h" int main() { printf("Hello"); ...

Компиляция не проходит, но код тот же. - C (СИ)
Писал код, программа разрасталась, по мере ее увелечения много раз компилировал и все было нормально, работало. Потом Dev-C++ закрыл. Потом...

Компиляция проектов на языке C++ в машинный код - C++ IDE
Доброго времени суток. Возникла необходимость компиляции проектов Visual Studio в машинный код. Здесь понимается машинный код процессора,...

Раздельная компиляция. Преобразовать код в многофайловое приложение - C++
нужна помощь в преобразовании кода программы для разделенной трансляции (заголовочный код, код реализации класса и сам модифицированный код...


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

Или воспользуйтесь поиском по форуму:
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
13.05.2013, 14:37     Компиляция запроса в байт-код #12
А если переименовать?
Yandex
Объявления
13.05.2013, 14:37     Компиляция запроса в байт-код
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru