sqlite3_step () выходит из приложения iPhone при выполнении внутренних объединений - проблема с памятью - PullRequest
1 голос
/ 16 июня 2011

У меня есть файл базы данных с несколькими таблицами, и каждая таблица содержит минимум 20 тыс. Записей. Теперь я пытаюсь выполнить запрос внутреннего соединения в iPhone с помощью sqlite3.

SELECT DISTINCT  abc.id, abc.full_name FROM abc INNER JOIN xyz ON abc.id = xyz.id limit 10 ;
sqlite3_stmt *selectstmt;
if(sqlite3_prepare_v2(database, sql, -1, &selectstmt, NULL) == SQLITE_OK) {
   while(sqlite3_step(selectstmt) == SQLITE_ROW) {
        // populating my custom objects
   }
}

Когда я пытаюсь выполнить тот же запрос с таблицами с меньшим количеством строк, команда sqlite3_step () работает нормально.

Было бы замечательно, если бы кто-то мог пролить свет на то, что именно происходит, когда выполняется оператор. Будут ли целые таблицы загружаться в память перед выполнением запроса, и если да, то что может быть макс. ограничение на количество записей в таблице при выполнении внутреннего соединения.

Когда я пытаюсь получить записи из одной таблицы с записями 50 КБ, она работает без проблем.

Заранее спасибо

Sudheer

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...