我正在开发一个需要设备上的SQL DB的应用程序。我正在使用File.applicationStorageDirectory和folder.resolvePath添加新的数据库。调试应用程序时,它看起来都正常执行,我能够成功创建一个新表。
我在插入和读取记录时并没有走得太远,但我只是想问,当我重新运行应用程序时,现有的DB文件是否被新的空文件替换?如果需要,我需要检查文件是否存在等。
如何查看设备上的数据库(此阶段的iOS)?
由于
答案 0 :(得分:0)
试试这个
如果您使用resolvePath,如果该文件不存在,则它为您创建,否则它将保持原样。如果您使用resolvepath,则永远不会发生。
OR
如果您想通过
检查是否已存在 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文件。
答案 1 :(得分:0)
是的,它会被保存,您可以随时访问它。这适用于任何事情,而不仅仅是数据库(因此通用名称和对象类型)
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();
}
然后,您更新数据并按照我在第一个代码段中显示的那样继续编写