2011-12-29 54 views
0

我建立一个数组:柔性移动接入阵列

var Detail:Array = new Array(getClass.detailArticle(brand, subgroup, name)); 

的方法:

public function detailArticle(brand:String, subgroup:String, name:String):Array 
    { 
     var sqlConnection:SQLConnection; 
     sqlConnection = new SQLConnection(); 
     sqlConnection.open(File.applicationStorageDirectory.resolvePath("assets/db.sqlite")); 
     var stmt:SQLStatement = new SQLStatement(); 
     stmt.sqlConnection = sqlConnection; 
     stmt.text = 
      "SELECT * FROM sen_updatesnew " + 
      "WHERE Brand= '" + brand + "' " + 
      "AND SubGroup= '" + subgroup + "' " + 
      "AND Name = '" + name + "' "; 
     stmt.execute(); 
     var result:Array = stmt.getResult().data; 
     return result;   
    } 

如何访问元素?

细节[“element”]或Detail [0]没有显示任何内容。查询正在顺利进行。

我在做什么错?

回答

2

docs

如果响应参数不为null指定Responder对象指定被调用来处理该操作的结果的方法。如果responder参数为null,则在异步执行模式下,如果操作成功,则调度结果事件;如果操作失败,则调度错误事件。

由于execute方法的空响应者参数,您必须在结果事件中监听结果。这听起来像你试图在检索结果之前访问结果。


// make your result array an instance variable, not a functional local variable 
protected var result:Array ; 

// make this an instance variable so it can be accessed across methods 
protected var stmt:SQLStatement = new SQLStatement(); 

// this can't return anything because there is nothing to return at the time this method completes it's execution 
public function detailArticle(brand:String, subgroup:String, name:String):void 
{ 
    // some stuff 
    // add the event listener for the result event 
    stmt.addEventListener('result',onResult); 
    // other stuff 
    // no return statement 
} 


// the result handler 
protected function onResult(event:SQLEvent):void{ 
    result = stmt.getResult().data; 
} 
+0

在暂时无法访问的文档(你的链接)...你能给我在我的代码示例什么建议吗?我正在为这件事争取几个小时,并找不到解决方案... – Klaaz 2011-12-29 14:17:55

+0

我确认链接是正确的。我为你一起扔了一些划痕代码,这是在我的答案。您需要进行一些研究以了解同步和异步调用 – JeffryHouser 2011-12-29 15:41:28

+0

之间的差异,谢谢!这真的帮助我! – Klaaz 2011-12-29 23:05:38