我正在尝试将SQL数据库导入我的Adobe Air iOS应用程序。我有调用工作,一切似乎都有效但新的数据库文件无法读取。以下是我的代码。
function onInvoke(event:InvokeEvent):void{
if(event.arguments && event.arguments.length)
{
contentUri = event.arguments[0] as String;
file_db = new File(contentUri);
fs_db = new FileStream();
fs_db.addEventListener(Event.COMPLETE, import_db);
fs_db.openAsync(file_db, FileMode.READ);
}
}
我的导入功能如下:
function import_db(event:Event):void{
fs_db.removeEventListener(Event.COMPLETE, import_db);
var fs:FileStream = new FileStream();
var myfile:File=File.applicationStorageDirectory.resolvePath("testDB.db");
var fileContent:String = fs_db.readUTFBytes(fs_db.bytesAvailable);
fs.open(myfile,FileMode.WRITE);
fs.writeUTFBytes(fileContent);
fs.addEventListener(Event.CLOSE, fileClosed);
fs.close();
function fileClosed(e:Event):void{
// do other stuff
}
}
每件事似乎都在执行,但是当我尝试连接数据库时,我收到SQL错误:
错误#2044:未处理的SQLErrorEvent: errorID = 3138,operation = open,message =错误#3138:打开的文件不是数据库文件。
感谢任何指导
答案 0 :(得分:0)
想出来,将字节读入bytearray,然后读入文件。
var mybytes:ByteArray=new ByteArray();
fs_db.readBytes(mybytes,0,fs_db.bytesAvailable);
fs.openAsync(myfile,FileMode.WRITE);
fs.writeBytes(mybytes,0,mybytes.length);