2012-01-18 67 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.