Я публикую приложение AIR в режиме отладки с помощью FlashDevelop и включил базу данных в файлы / папки, которые будут опубликованы.Когда приложение запускается в первый раз, оно проверяет, есть ли экземпляр этого БД в applicationStorageDirectory, если его нет, копирует включенный экземпляр из applicationDirectory в applicationStorageDirectory.Это должно означать, что указанная база данных dbFile = File.applicationStorageDirectory.resolvePath(DB_FILE_NAME);
теперь должна быть доступна для записи, однако, когда я запускаю приложение, я могу читать записи из таблицы, но когда я пытаюсь писать, используя оператор SQL, я получаю SQLError: 'Ошибка # 3122: попытканаписать базу данных только для чтения.
Я знаю, что это будет сгенерировано, если я попытаюсь записать в папку только для чтения applicationDirectory, но я, конечно, использую расположение File.applicationStorageDirectory, которое должно (насколько это возможно)насколько я знаю) быть доступным для записи.
Расположение базы данных в моей Windows 7, 64bit = C: \ Users \ sean.duffy \ AppData \ Roaming \ FishFightAppData \ Local Store \ db, это можно найти с помощью dbFileСвойство .nativePath, поэтому я уверен, что смогу обновить БД.
У кого-нибудь есть идеи?Я перепробовал все, что мог придумать, и искал повсюду, но, похоже, единственной общей причиной является попытка записи в asplicationDirectory, а не в каталог хранения ....
UPDATE ::
Мой плохой - только что понял, что я неправильно прочитал API сторонней библиотеки, которую я использую!Я должен был вызвать executeModify (оператор), который может изменить содержимое базы данных, вместо этого я вызываю execute (оператор), который не / не может перезаписать базу данных.
Исходный код скомпилирован в SWC, и не было документации, указывающей на необходимость использования executeModify, хотя я должен был догадаться по названию, которое, я полагаю!
Извините за это, и спасибоза вашу помощь