我的客户端有一个 Sqlite 数据库文件,里面有不同的表,我还可以从不同的 sqlite 查看器查看这些表中的数据。这个数据库文件不是在 Flex 中创建的。它的扩展名是 sqlite ( fileName.sqlite
)。
但是,当我尝试通过来自 Flex(操作脚本)的查询访问这些表时,会引发错误:
3115 未找到表
即使表的名称在数据库中是 100% 正确的。
在 flex 中创建的 sqlite 文件可以在 flex 中访问,但我必须使用不是在 flex 中创建的那个 sqlite 文件。
谁能告诉我如何在 FLEX 中使用 sqlite 数据库文件?
//////////////////////////////////////////////// 下边是我的代码在这里。
private var _sqlconnection:SQLConnection
private var getPageFromAyatStatement:SQLStatement;
public function connect():void {
_sqlconnection =new SQLConnection();
_sqlconnection.addEventListener(SQLEvent.OPEN,onOpenDB);
_sqlconnection.addEventListener(SQLErrorEvent.ERROR,handlerSqlOpenError);
var dbFile:File = File.applicationStorageDirectory.resolvePath("abc.sqlite");
_sqlconnection.openAsync(dbFile);
}
private function onOpenDB(e:SQLEvent):void {
getPageFromAyat();
}
private function getPageFromAyat():void {
getPageFromAyatStatement = new SQLStatement;
getPageFromAyatStatement.sqlConnection =_sqlconnection;
var sql:String = "SELECT * FROM Ayat"
getPageFromAyatStatement.text=sql;
getPageFromAyatStatement.addEventListener(SQLEvent.RESULT,ayatStatementResult);
getPageFromAyatStatement.addEventListener(SQLErrorEvent.ERROR,selectDbPathError);
getPageFromAyatStatement.execute();
}
private function ayatStatementResult(event:SQLEvent):void {
var sqlResult:SQLResult = getPageFromAyatStatement.getResult();
if(sqlResult.data != null)
{
trace(sqlResult.toString())
}
}
private function selectDbPathError(event:SQLErrorEvent):void {
}
private function handlerSqlOpenError(e:SQLErrorEvent):void {
}
它正确打开数据库文件,甚至还正确运行 getPageFromAyatStatement 但显示错误“没有这样的表:Ayat”但我可以从 sqlite 查看器中看到 Ayat 表中的所有数据。