次の関数内でAndroidアプリ用のsqliteデータベースを作成しています:
protected function createDatabase():void{
_sqlConnection = new SQLConnection();
_sqlConnection.addEventListener(SQLEvent.OPEN, openHandler);
_sqlConnection.addEventListener(SQLErrorEvent.ERROR, errorHandler);
var _sqlFolder:File = File.applicationStorageDirectory;
var _sqlFile:File = _sqlFolder.resolvePath("RouteLog.db");
_sqlConnection.open(_sqlFile);
}
テーブルの作成、挿入、選択は正常にできますが、フラッシュcs5.5からアプリを再公開するたびに、データベースが上書きされ、すべてのデータが失われます。完全に困惑している、どんなアイデアも歓迎します!
乾杯
[編集]
だから、私はusbを介してフラッシュプロから直接デバッグリリースを公開しています。アプリが初期化されると、上記のメソッドが呼び出され、OPENイベントを受信すると、次のSQLステートメントを使用してテーブルが作成されます。
var SQL:String =
"CREATE TABLE IF NOT EXISTS myRoutes (" +
"id INTEGER PRIMARY KEY AUTOINCREMENT, " +
"name STRING, " +
"created DATE, " +
"duration NUMBER, " +
"waypoints OBJECT, " +
"avgSpeed NUMBER, " +
"distance NUMBER, " +
"rating NUMBER" + ")";
その後、いくつかの操作、挿入、選択などを実行でき、すべてが期待どおりです。アプリを終了して再度luanchすると、以前のデータセットはそのままですが、フラッシュから再公開すると、以前のリリースから保存されたデータはすべて消えてしまいます。
ドキュメントによると、SQLConnection.open()は、パラメーターで指定されたファイルへの接続を開き、存在しない場合は接続を作成します...