SQLIte для Iphone: записи не обновляются - PullRequest
0 голосов
/ 26 марта 2011

Я использую Appcelerator. Я использую следующий код для получения записей БД. Я использую клиент SQLite, NavCatLite в качестве графического интерфейса SQLite для просмотра и вставки данных. У меня странная проблема, которая, когда я обновляю запись через клиент SQLite, отражается в моем коде. Почему это не обновляет данные? Я даже закрыл клиент, так как думал, что он будет кэшировать соединение, но это тоже не помогло. Код указан ниже:

/** * All Db Functions Goes here */

var resumeDB = Titanium.Database.install('resume.db', 'myResume');
//var resumeDB = Titanium.Database.open('cold');

//Iterate through ResultSet

var myResultSet = resumeDB.execute('SELECT * FROM cvs');
while (myResultSet.isValidRow())
{
  Ti.API.info("Result iS = "+myResultSet.fieldByName('sb_title'));
  myResultSet.next();

} // Do something that iterates

resumeDB.close();

P.s: Это не база данных только для чтения. Пользователь будет вставлять и извлекать данные каждый раз.

Ответы [ 2 ]

2 голосов
/ 30 марта 2011

Файл базы данных, изначально сохраненный в /Resources, не является файлом базы данных, который используется приложением после установки.

За руководство

С другой стороны, install () скопирует предварительно существующий файл базы данных из Каталог ресурсов Titanium или один его потомков, чтобы applicationDataDirectory /../ базы данных / и вернуть ссылку на открытую базы данных . Если файл уже существует с тем же именем, действие копирования молча выйдет из строя и база данных будет просто открыт.

Короче говоря, просто так не работает.

0 голосов
/ 28 марта 2011

Я думаю, что база данных устанавливается только один раз, вместе с приложением, когда оно впервые устанавливается на устройство / симулятор (я все равно видел это на iPhone, не уверен насчет Android). При первом запуске приложения ваша база данных копируется в другое место, и после этого запускается копия, а не обновленная база данных. Попробуйте удалить содержимое каталогов build / iphone / build / android и снова запустить приложение, чтобы выполнить обновление. Если это не сработает, попробуйте сбросить симулятор / удалить приложение с устройства и установить заново.

...