0

我的客户端有一个 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 表中的所有数据。

4

0 回答 0