2010-12-15 16 views
4

私のアプリケーションはサーバーからデータを取り出し、SQLiteデータベースに保存します。これは、9550(BlackBerry Storm 2)シミュレータで正常に動作しますが、私は、他のシミュレータでこれを実行すると、それは私に、このエラーを与える:BlackBerry SQLiteデータベースの作成: "ファイルシステムが使用できません"

file system not ready

コードスニペット:

URI myURI = URI.create("file:///store/MyDataBase.db"); 

なぜこの出来事はありますか?

+0

オープンFileConnectionおよびcanWrite()がtrueを返すかどうかを確認します。 – Jonathan

+0

マイケルありがとう – nimi

答えて

5

9550では、ストアがマウントされたファイルシステムルートではない可能性があります。現在マウントされているファイルシステムの列挙を取得するには、javax.microedition.io.file.FileSystemRegistry.listRoots()を使用する必要があります。

+0

私はこれを試して、私はその店が各エミュレータで利用可能なファイルシステムであることがわかりました。なぜこのファイルシステムは準備ができていませんエラーaccurs ?? – nimi

23

リチャードが正しいです。ファイルシステムルート "store"の存在を確認する必要があります。しかし、SQLiteを使用するための余分なしわがあります。 RIMeMMCストレージのSQLiteのみをサポートします。したがって、たとえ「ストア」が存在するとしても、基本ストレージがeMMCである場合にのみ機能します。特にBlackBerry Bold 9650デバイスのAKA Bold2は「store」を持っていますが、eMMCではないため、そこにSQLiteデータベースを置くことはできません。

私は、ファイルシステムがeMMCを使用しているかどうかを知る直接的な方法については知らない。私はRIMに尋ねて、ファイルシステムのサイズを調べるように言われました。 1   GBを超える場合は、eMMCです。それは私にとって非常に満足のいく答えではありませんでした。私はファイルシステム "システム"のチェックを終了しました。読み取り専用のファイルシステムですが、eMMCストレージにのみ存在し、存在する場合は、データベースを「ストア」ファイルシステムルートに書き込むことができます。

SQLite developer guide overview経由

:そのURIへ

You can use the SQLite API, provided in the net.rim.device.api.database package, to store application data persistently to eMMC memory or a microSD card.

+0

マイケル、私はあなたが私よりもこれ以上はいないと言わなければならない。それが存在するにもかかわらず、/ storeに書き込むことができなかったことがわかったのは大きな驚きでした。つまり、SQLiteデータベースは、特定のデバイスでSDCカードなしでのみ使用できます。楽しい。 – Spedge

+0

Michael ...しかしSqliteは、BlackBerry®Device Software 5.0以降を実行するBlackBerryデバイスでのみ使用され、SQLiteライブラリが含まれています。 5.0より下のデバイスソフトウェアはどうでしょうか?私たちはそれらのsqliteを使用することはできません?私たちが交互のものよりもできないならば?? – nimi

+0

@nimiこの質問は、類似しているかもしれない既存の質問を検索した後で、StackOverflowで新しい質問を作成することによってうまく処理されるでしょう。 –

関連する問題