我在我的空气中为以下函数中的 android 应用程序创建了一个 sqlite db:
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);
}
我可以成功地创建表、插入和选择,但是每次我从 flash cs5.5 重新发布应用程序时,数据库都会被覆盖并且所有数据都会丢失。完全被难住了,欢迎任何想法!
干杯
[编辑]
所以,我通过 USB 直接从 flash pro 发布调试版本。当应用程序初始化时,它会调用上面的方法,在接收到 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" + ")";
然后我可以运行一些操作、插入、选择等,一切都按预期进行。如果我退出并重新启动应用程序,以前的数据集是完整的,但是当我从闪存重新发布时,以前版本中存储的任何数据都消失了。
根据文档 SQLConnection.open() 将打开与参数中提供的文件的连接,如果它不存在,它将创建一个...