2010-11-22 10 views
1

私はいくつかのデータベース情報をとり、それをデータグリッドまたはチャートに変換するアプリケーションを持っています。オブジェクトを配列コレクション

私はこのエラーを1つの行があり、配列で使用しようとしているので、私のアプリで使用できます。その人が直面するかなり一般的な問題だと私は注目していますが、何を試してもその周りを回ることはできないようです。

私のactionscriptには、ASPを介してデータベースにアクセスし、イベントのデータを返す機能があります(obvではいくつかのものを削除しました - mssqlQuery関数への呼び出しがロードされます)私はそう

mssqlQuery("SELECT (CASE SLARag ,COUNT (SLARag) as Volume FROM [CMI_ClientMI].[Portal].[BatchUpdate]","BusSegBuildSummary");} 

public static function mssqlQuery(sql:String,fid:String):void { 
var http:HTTPService = new HTTPService; 
var parm:Object = new Object; 
parm.fas_sql = sql; 
parm.fas_db = mssql_db; 
http.url = mssql_url+"?irand="+Math.random(); 
// http.showBusyCursor = true; 
http.request = sql; 
http.addEventListener(ResultEvent.RESULT, mssqlResult); 
http.addEventListener(FaultEvent.FAULT, mssqlFault); 
http.method = "POST"; 
sqlToken = http.send(parm); 
sqlToken.param = fid; 
} 

//Var for BusSegBuildSummary arraycollection 
[Bindable] 
public static var _BusSegBuildSummary:ArrayCollection = new ArrayCollection(); 


//Case statement for BusSegBuildSummary 
case "BusSegBuildSummary": 


if(event.result.results.record is ObjectProxy){ 
trace("this is object Proxy"); 

} 
else{ 
    trace("this isnt object Proxy"); 
    _BusSegBuildSummary = event.result.results.record; 

} 

break; 

)との外傷は以下である必要があります - 結果はそれに複数のレコードを持っている場合 - その後、私たちはうまくある - そのトレース(「これはオブジェクトのプロキシです」);ビットは面倒です。 私はオブジェクトを配列コレクションとしてキャストしなければならないと思っています。

アイデア?私はしばらくの間苦労していて、私はパニックになっています!

答えて

0

これはテストされていませんが、うまくいくと思います。 ArrayUtil.toArray()を使用して、ObjectProxyをArrayCollectionに変換してください。

// import array utils 
import mx.utils.ArrayUtil; 

// later on 
var record:* = event.result.results.record; 
if (record is ArrayCollection) { 
    _BusSegBuildSummary = record; 
} else if (record is ObjectProxy) { 
    _BusSegBuildSummary = new ArrayCollection(ArrayUtil.toArray(record)); 
} 
1
  
    if(event.result.results.record is ObjectProxy){ 
     var obj:ObjectProxy = event.result.results.record as ObjectProxy; 
     _BusSegBuildSummary = new ArrayCollection([obj.object]); 
     } 
関連する問題