0

我正在开发一个需要在设备上安装 SQL DB 的应用程序。我正在使用 File.applicationStorageDirectory 和 folder.resolvePath 添加新数据库。调试应用程序时,它看起来都正确执行,我能够成功创建一个新表。

我在插入和读取记录方面并没有走得太远,但是我只是想问一下,当我重新运行应用程序时,现有的数据库文件是否会被新的空文件替换?如果是这样,我需要检查文件是否存在等。

如何查看设备上的数据库(现阶段的 iOS)?

谢谢

4

2 回答 2

1

是的,它将被保存,您可以随时访问它。这适用于任何东西,而不仅仅是数据库(因此通用名称和对象类型)

var file:File = File.applicationStorageDirectory.resolvePath( "file.path" );
var obj:Object = { someRandom:"data" };
var fs:FileStream = new FileStream();
fs.open( file, FileMode.WRITE );
fs.writeObject( obj );
fs.close();

以上将对象写入obj设备。请记住,这不会更新文件,它会覆盖文件。要更新文件,请执行以下操作:

var file:File = File.applicationStorageDirectory.resolvePath( "file.path" );
if ( file.exists ) {
    var fs:FileStream = new FileStream();
    fs.open( file, FileMode.READ);
    var obj:Object = fs.readObject();
    fs.close();
}

然后你更新你的数据并继续写我在第一个片段中显示的内容

于 2012-12-10T23:00:51.690 回答
0

试试这个

如果你使用resolvePath,如果文件不存在,它会为你创建,否则它会保持原样。如果你使用resolvepath,覆盖永远不会发生。

或者

如果你想检查是否已经存在通过

        if(dbFile.exist) 
           trace('File already exists');

用这个

        var dbFile:File = new File("app-storage:/" + "localdb.db");
        sqlConnection = new SQLConnection();            
        sqlConnection.addEventListener(SQLEvent.OPEN, onAuthorDatabase_OpenHandler);
        sqlConnection.addEventListener(SQLErrorEvent.ERROR, onSQLErroHandler);
        sqlConnection.openAsync(dbFile);

我不知道如何在设备存储位置(iOS)上查看 db 文件。

于 2012-12-10T05:01:13.253 回答