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