Я создаю sqlite db в своем приложении air для Android внутри следующей функции:
protected function createDatabase():void{
_sqlConnection = new SQLConnection();
_sqlConnection.addEventListener(SQLEvent.OPEN, openHandler);
_sqlConnection.addEventListener(SQLErrorEvent.ERROR, errorHandler);
var _sqlFolder:File = File.applicationStorageDirectory;
var _sqlFile:File = _sqlFolder.resolvePath("RouteLog.db");
_sqlConnection.open(_sqlFile);
}
я могу успешно создавать таблицы, вставлять и выбирать, но каждый раз, когда я повторно публикую приложение из flash cs5.5, база данных перезаписывается и все данные теряются. Полный тупик, любые идеи приветствуются!
Ваше здоровье
[редактировать]
Итак, я публикую отладочную версию непосредственно из flash pro через usb. Когда приложение инициализируется, оно вызывает описанный выше метод, при получении события OPEN оно создает таблицу, используя следующую инструкцию SQL.
var SQL:String =
"CREATE TABLE IF NOT EXISTS myRoutes (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name STRING, " +
"created DATE, " +
"duration NUMBER, " +
"waypoints OBJECT, " +
"avgSpeed NUMBER, " +
"distance NUMBER, " +
"rating NUMBER" + ")";
Затем я могу запустить некоторые операции, вставить, выбрать и т. д., и все будет, как и ожидалось. Если я выйду и повторно запущу приложение, предыдущие наборы данных останутся нетронутыми, но когда я повторно опубликую из флэш-памяти, все данные, сохраненные в предыдущем выпуске, исчезнут.
Согласно документации SQLConnection.open() откроет соединение с файлом, указанным в параметрах, и, если он не существует, создаст его...