クライアントからの 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 テーブルのすべてのデータを表示できます。