В основном проблема в том, что класс SQLService не может немедленно вернуть результат для вашего запроса. Вот почему он использует функцию прослушивания обратного вызова (matchresult в вашем примере), чтобы сообщить вашей программе позднее, что она завершила поиск.
Базовым способом обработки этого является вызов запроса, а затем ожидание запроса «обратного вызова» к функции прослушивания, которая затем может продолжить выполнение.
public function dbmatch(datetime:String, typecode:String, callbackListener:Function):void {
var q:String = "SELECT DateTime FROM Event WHERE DateTime='"+datetime+"' AND EventTypeCode='"+typecode+"'"
SQLService.getInstance().execute(q, null, callbackListener);
}
В другом месте:
// Start the query, but can't react to it immediatly
dbmatch(datetime, "Gb", onSQLQueryResult);
// Your callback function
public function onSQLQueryResult(result:SQLResult):void {
var match:String = result.data[0];
if (match == null) {
// Do stuff you were going to do at (!recordexists)
}
}