2012-01-18 97 views
0

我可以在IDE(FB)中运行时写入数据库,而封装空气后,应用程序不会写入sqlite数据库,为什么?提前致谢。无法写入到打包空气中的sqlite数据库

+0

您的数据库文件位于安装后的位置。如果它是安装文件夹(例如c:\ program files \ MyApp),那么这是错误的。你没有权利写在那里。 ???? – 2012-02-03 07:55:06

回答

0

可能的原因是您安装的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文件夹(或者你正在编译的任何文件夹)相同。

希望有帮助,如果不是,如果你可以发布你正在使用的代码,以及你得到什么错误,我会尽力帮助你。

0

最可能的原因是您的数据库文件驻留在只读的应用程序目录中。

从Flex的3.5语言参考:

File.applicationDirectory-的地方安装了应用程序(包括所有已安装的资产)只读目录

如果是这样的情况下,可能但不仅仅是简单的修复就是使用File.applicationStorageDirectory。

希望这会有所帮助。

N.