私はここで何をしようとしているのか分かりませんが、基本的にレコードがデータベースに存在するかどうかを確認する必要があるので、関数を呼び出してsqlrunnerクラスを使用しています。クエリの結果はイベントレスポンスとして呼び出され、結果の関数からその値を親に返す方法を知らない。 私は後方に物事をする必要がありますように感じるか何か...他の場所このsqlrunner関数からブール型の戻り値を取得する方法は?
public function dbmatch(datetime:String, typecode:String):Boolean {
var q:String = "SELECT DateTime FROM Event WHERE DateTime='"+datetime+"' AND EventTypeCode='"+typecode+"'"
SQLService.getInstance().execute(q,null,matchresult);
function matchresult(result:SQLResult):Boolean{
var match:String = result.data[0];
if (match == null){return false} else {return true}
}
return matchresult();
}
:基本的に問題はSQLServiceクラスはすぐにクエリの結果を返すことができないということです
var recordexists:Boolean = dbmatch(datetime, "Gb");
if (!recordexists){...}
?常に真実に戻っていますか? –
@EyeSeeEm私がそこに持っているのは、返り値の形式のmatchresultを実際に引き出すわけではありません。引数が必要ですが、それを置く方法はわかりません。主な問題は、matchresultが最初にイベントリスナーによって呼び出され、戻り値がどこにあるのかわからないことです。 – Damon
ああ、そうです。次に、プログラムの流れを変更する必要があると思います。結果は即座に返すことができないので、完了するまで待つ(つまり聴く)必要があり、実行を続行する必要があります。必要があれば、私は試してみることができますが、私はあなたのケースではうまくいかないとは思っていますが、事柄を明確にするのに役立ちます。 –