Flash Builder 4.6を使用して、例としてhttp://www.flex-blog.com/adobe-air-sqlite-example (編集:リンクが壊れているようです)に従っていますが、コードの一部ではない仕事:
private function resault(e:SQLEvent):void
{
// with sqls.getResault().data we get the array of objects for each row out of our database
var data:Array = sqls.getResult().data;
// we pass the array of objects to our data provider to fill the datagrid
dp = new ArrayCollection(data);
}
実行時にプログラムをチェックすると、sqls.getResult() は有効な SQLResult オブジェクトを返しますが、そのデータは null です。
そして、私の前の質問からAdobe Air: convert sqlite's result [object Object] to String? 、私は間違った質問をしているようです。
それにもかかわらず、私は自分の SQLResult オブジェクトをチェックしました
trace(ObjectUtil.toString(sqls.getResult()));
すべてのコンテンツを sqlite から取得したことがわかります。
(flash.data::SQLResult)#0
complete = true
data = (Array)#1
[0] (Object)#2
first_name = "AAA"
id = 1
last_name = "BBB"
[1] (Object)#3
first_name = "AAA"
id = 2
last_name = "BBB"
[2] (Object)#4
first_name = "qqq"
id = 3
last_name = "qqq"
lastInsertRowID = 0
rowsAffected = 0
それで、ここで何が起こっているのですか?すべての sqlite 要素を解析し、それらを自分でデータ プロバイダーに配置するには、独自の関数を作成する必要がありますか? はい、私はそれを行うことができますが、真剣に、多くのチュートリアルが以下を使用して示しています:
var data:Array = sqls.getResult().data;
dp = new ArrayCollection(data);
さて、質問に戻ります: sqls.getResult().data が null になる原因として考えられるものは何ですか?