我正在开发一个需要在设备上安装 SQL DB 的应用程序。我正在使用 File.applicationStorageDirectory 和 folder.resolvePath 添加新数据库。调试应用程序时,它看起来都正确执行,我能够成功创建一个新表。
我在插入和读取记录方面并没有走得太远,但是我只是想问一下,当我重新运行应用程序时,现有的数据库文件是否会被新的空文件替换?如果是这样,我需要检查文件是否存在等。
如何查看设备上的数据库(现阶段的 iOS)?
谢谢
我正在开发一个需要在设备上安装 SQL DB 的应用程序。我正在使用 File.applicationStorageDirectory 和 folder.resolvePath 添加新数据库。调试应用程序时,它看起来都正确执行,我能够成功创建一个新表。
我在插入和读取记录方面并没有走得太远,但是我只是想问一下,当我重新运行应用程序时,现有的数据库文件是否会被新的空文件替换?如果是这样,我需要检查文件是否存在等。
如何查看设备上的数据库(现阶段的 iOS)?
谢谢
是的,它将被保存,您可以随时访问它。这适用于任何东西,而不仅仅是数据库(因此通用名称和对象类型)
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();
}
然后你更新你的数据并继续写我在第一个片段中显示的内容
试试这个
如果你使用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 文件。