我得到的數據的方式是通過一個回調函數[processclinicResults],如何通過函數內部的回調函數返回值?
,它給該陣列收集爲值對象_ClinicVO。
我有,我不能直接打通getTableContent函數的返回ArrayCollection的一個問題,我試過後
返回值,但它返回null。
有誰知道如何讓它容易獲得數組? 我只是不想每次使用類似的funciotn時都聲明變量。或者我必須覆蓋[clinicData]?
public function getTableContent(resultHandler:Function, faultHandler:Function = null):void
{
var stmt:SQLStatement = new SQLStatement();
stmt.sqlConnection = sqlConnection;
stmt.text = 'SELECT * FROM Clinic;';
stmt.itemClass = ClinicVO;
stmt.addEventListener(SQLEvent.RESULT,
function (event:SQLEvent):void {
resultHandler.call(this, new ArrayCollection(stmt.getResult().data));
});
stmt.addEventListener(SQLErrorEvent.ERROR, faultHandler == null ? sqlErrorHandler : faultHandler);
stmt.execute();
}
public function errorConnectingToTable(evt:SQLErrorEvent):void {
trace("Error getting information from DB");
}
protected function processClinicResults(resultsArray:ArrayCollection=null):void {
if (resultsArray == null) {
trace("DB has NO data");
//there is no data
} else {
clinicData = resultsArray;
}
}
因爲你的回調是異步的(你在'stmt'上使用'addEventListener',這意味着這一點),你不能直接通過返回值這樣的電話。我想你應該運行查詢服務器端,通過'URLRequest'請求它們並處理那裏的錯誤。 – Vesper
我使用Adobe Air做跨平臺的任務,數據庫和應用程序都在同一個設備上。早期版本就像你說的那樣 - 在視圖部分上運行查詢,並且存在它太複雜的缺點。所以我使用[DAO-EXT](https://code.google.com/p/dao-ext/),我可以使用MVC模式使我的代碼更加模塊化,但它顯然面臨着另一個問題,儘管... – Pao