гибкий мобильный доступ - PullRequest
       13

гибкий мобильный доступ

0 голосов
/ 29 декабря 2011

Я создаю массив:

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;          
    }

Как получить доступ к элементам?

Detail ["element"] или Detail [0] ничего не показывают.Запрос работает кстати.

Что я делаю не так?

1 Ответ

2 голосов
/ 29 декабря 2011

Из документов

Если аргумент Responder не равен NULL, указанный объект 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;
}
...