Не могу написать в sqlite db в упакованном воздухе - PullRequest
0 голосов
/ 18 января 2012

Я могу писать в db при работе в IDE (FB), в то время как после упаковки эфира приложение не будет писать в sqlite db. Почему? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 03 февраля 2012

Наиболее вероятная причина в том, что ваш файл БД находится в каталоге приложения, который доступен только для чтения.

Из справки по языку Flex 3.5:

File.applicationDirectory - доступный только для чтения каталог, в который установлено приложение (вместе со всеми установленными ресурсами)

В этом случае возможным, но не только простым решением было бы просто использовать File.applicationStorageDirectory.

Надеюсь, это поможет.

Н.

0 голосов
/ 19 января 2012

Вероятная причина в том, что ваше установленное приложение Air не может определить путь к файлу sqlite.

Обычно я использую одно из статических общедоступных свойств класса File, чтобы разрешить мой файл sqlite, например.

databaseConnection = new SQLConnection();
databaseConnection.addEventListener(SQLEvent.OPEN, onOpen);
databaseConnection.addEventListener(SQLErrorEvent.ERROR, onError);               
databaseConnection.openAsync(File.applicationDirectory.resolvePath('mydb.sqlite'));

Ключевым битом здесь является строка File.applicationDirectory.resolvePath ('mydb.sqlite') , в этом случае AIR будет искать файл mydb.sqlite в каталоге, в котором установлено приложение. в - в вашей среде разработки это будет то же самое, что и папка bin-debug (или любая папка, в которую вы компилируете).

Надеюсь, это поможет, если нет, если вы можете опубликовать код, который вы используете, и какую ошибку вы получите, я постараюсь помочь вам в дальнейшем.

...