Объект в коллекцию массивов - PullRequest
1 голос
/ 22 ноября 2010

У меня есть приложение, которое берет некоторую информацию из базы данных и помещает ее в таблицу данных или диаграмму.

Я сталкивался с этой ошибкой, когда имелась одна строка и я пытался использовать ее в массиве, чтобы я мог использовать ее в своем приложении. До меня дошло, что это довольно распространенная проблема, с которой сталкиваются люди, но я, похоже, не могу обойти ее, несмотря ни на что.

Мой код действия имеет функцию, которая перенаправляет данные в базу данных через ASP и возвращает данные в событии - как показано ниже (очевидно, я удалил некоторые вещи - загружаются вызовы функции 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;

Итак, если в результате имеется более одной записи, то все в порядке - его след («это прокси объекта»); немного хлопотно Я думаю, что мне нужно привести объект в коллекцию массивов, и я пробовал это разными способами, но безуспешно.

Есть идеи? Я боролся некоторое время и паникую!

Ответы [ 2 ]

1 голос
/ 22 ноября 2010
     
     if( event.result.results.record is ObjectProxy ){
       var obj:ObjectProxy = event.result.results.record as ObjectProxy;
       _BusSegBuildSummary = new ArrayCollection([obj.object]);
      }
0 голосов
/ 22 ноября 2010

Это не проверено, но я думаю, что это может сработать.Просто используйте 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)); 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...