Справочник по ActionScript® 3.0 для платформы Adobe® Flash®
Домашняя страница  |  Скрыть список пакетов и классов |  Пакеты  |  Классы  |  Что нового  |  Указатель  |  Приложения  |  Почему по-английски?
Фильтры: Получение данных с сервера...
Получение данных с сервера...
flash.data 

SQLResult  - AS3

Пакетflash.data
Классpublic class SQLResult
НаследованиеSQLResult Inheritance Object

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0

Класс SQLResult обеспечивает доступ к данным, возвращаемым в результате выполнения инструкции SQL (экземпляр SQLStatement).

Экземпляр SQLResult для инструкции SQL доступен с помощью метода SQLStatement.getResult() или в качестве аргумента, который передается в результирующий обработчик экземпляра Responder, указанного при вызове метода SQLStatement.execute() или SQLStatement.next(). Как правило, экземпляры SQLResult не создаются непосредственно в прикладном коде.

Объект SQLResult используется для обращения к строкам данных, возвращаемым инструкцией SELECT (с помощью свойства data), получения идентификатора строки для инструкции INSERT (с помощью свойства lastInsertRowID), определения количества строк, обработанных инструкцией INSERT, UPDATE или DELETE (с помощью свойства rowsAffected) или определения наличия дополнительных строк результата выполнения инструкции SELECT, которые не были извлечены (с помощью свойства complete).

Связанные элементы API



Общедоступные свойства
 СвойствоОпределено
      complete : Boolean
[только для чтения] Указывает, все ли данные, полученные в результате выполнения инструкции, были возвращены.
SQLResult
 Inheritedconstructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта.
Object
      data : Array
[только для чтения] Данные, возвращаемые в результате выполнения инструкции, особенно инструкции SQL SELECT.
SQLResult
      lastInsertRowID : Number
[только для чтения] Последний идентификатор строки, созданный инструкцией SQL INSERT.
SQLResult
      rowsAffected : Number
[только для чтения] Указывает количество строк, обработанных операцией.
SQLResult
Общедоступные методы
 МетодОпределено
  
    SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)
Создает экземпляр SQLResult.
SQLResult
 Inherited
Показывает, определено ли заданное свойство для объекта.
Object
 Inherited
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра.
Object
 Inherited
Показывает наличие заданного свойства и его перечисляемость.
Object
 Inherited
Задает доступность динамического свойства для операций цикла.
Object
 Inherited
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали.
Object
 Inherited
Возвращает строковое представление заданного объекта.
Object
 Inherited
Возвращает элементарное значение заданного объекта.
Object
Сведения о свойстве
    

complete

свойство
complete:Boolean  [только для чтения]

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0

Указывает, все ли данные, полученные в результате выполнения инструкции, были возвращены.

Если инструкция возвращает одну или несколько строк, это свойство указывает, все ли строки были возвращены. Если метод execute() объекта SQLStatement был вызван с заданным аргументом prefetch, в свойстве data объекта SQLResult будет возвращено только указанное количество строк полученных данных. Дополнительные данные станут доступны при последующем вызове метода SQLStatement.next(). Это свойство используется, чтобы определить, когда были возвращены конечные данные.

Следует заметить, что из-за того, что во время выполнения количество строк неизвестно, курсор базы данных должен переместиться за последнюю строку до того, как завершится выполнение инструкции. Если при вызове метода SQLStatement.execute() задан аргумент prefetch, необходимо запросить не менее чем на одну запись больше, чем общее количество записей в результирующем наборе, прежде чем свойство complete экземпляра SQLResult получит значение true.



Реализация
    public function get complete():Boolean

Связанные элементы API

    

data

свойство 
data:Array  [только для чтения]

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0

Данные, возвращаемые в результате выполнения инструкции, особенно инструкции SQL SELECT.

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

Допустим, что выполняется следующая инструкция SQL SELECT:

     SELECT lastName, firstName
     FROM employees
     

Предположим, что таблица employees (сотрудники) содержит десять строк, тогда свойство SQLResult.data будет представлять собой объект Array с десятью элементами. Каждый элемент — это объект с двумя свойствами: lastName и firstName.

Ситуация усложняется, если инструкция SELECT используется со сложным столбцом результатов, например с агрегатной функцией. Допустим, что выполняется следующая инструкция SQL:

     SELECT departmentId, SUM(salary)
     FROM employees
     GROUP BY departmentId
     

В результате выполнения этой инструкции каждый объект в массиве data имеет два свойства: departmentId и SUM(salary). Однако SUM(salary) является недопустимым идентификатором. Если используется вычисляемый столбец, например агрегатной или другой функции, в инструкции SQL необходимо указать псевдоним для вычисляемого столбца. Псевдоним служит в качестве имени свойства в полученных объектах данных. Рассмотрим в качестве примера следующую альтернативу предыдущей инструкции:

     SELECT departmentId, SUM(salary) AS salarySubtotal
     FROM employees
     GROUP BY departmentId
     

В массиве data этой инструкции полученные объекты имеют два свойства: departmentId и salarySubtotal.

Свойство data всегда является экземпляром Array независимо от того, сколько строк и столбцов содержится в наборе результатов. Например, следующая инструкция SELECT возвращает одну строку и один столбец, то есть одно значение:

     SELECT COUNT(*) AS numEmployees
     FROM employees
     

После выполнения запроса свойство data содержит объект Array с одним элементом. Этот элемент представляет собой объект с одним свойством numEmployees.

Если в полученных данных содержатся повторяющиеся имена столбцов, например если инструкция SELECT включает два разных столбца id из двух разных таблиц, то полученным свойствам присваиваются имена в соответствии со значением свойства SQLConnection.columnNameStyle. По умолчанию имя каждого столбца используется в качестве имени свойства, но если в наборе результатов встречается несколько столбцов с одинаковым именем, то для них используется формат длинного имени [table-name]_[column-name]. Это поведение можно изменить, задав нужное значение для свойства SQLConnection.columnNameStyle.

По умолчанию объекты в массиве data являются экземплярами класса Object. Однако если указать для свойства SQLStatement.itemClass определенный класс, то элементы массива data создаются в качестве экземпляров этого класса. Для каждого столбца в наборе результатов класс itemClass должен иметь свойство, имя которого точно соответствует имени столбца.

Если инструкция не возвращает данных, это свойство равно null. Это происходит, если выполняется не инструкция SELECT или если инструкция SELECT не возвращает ни одной строки.



Реализация
    public function get data():Array

Связанные элементы API


Пример  ( Использование этого примера )
Следующий код иллюстрирует использование свойства itemClass для создания во время выполнения экземпляров пользовательского класса из результатов, возвращенных инструкцией SQL SELECT.
// Employee class definition
package
{
    public class Employee
    {
        public var name:String;
        public var ssn:String;
        public var id:uint;
        public override function toString():String
        {
            return "id: "+ id.toString() + " name: " + name + " ssn: " + ssn;
        }
    }
}


// using the Employee class as SQLStatement.itemClass
var conn:SQLConnection;
var dbStatement:SQLStatement;

function init():void
{
    conn = new SQLConnection();
    conn.addEventListener(SQLEvent.OPEN, connOpenHandler);
    
    dbStatement = new SQLStatement();
    dbStatement.sqlConnection = conn;
    dbStatement.text = "SELECT id, name, ssn FROM employees";
    dbStatement.itemClass = Employee;
    
    var dbFile:File = new File(File.separator + "employee.db");
    conn.open(dbFile);
}

function connOpenHandler(event:SQLEvent):void
{
    dbStatement.addEventListener(SQLEvent.RESULT, resultHandler);
    dbStatement.execute();
}

function resultHandler(event:SQLEvent):void
{
    var result:SQLResult = dbStatement.getResult();
    if (result != null)
    {
        var emp:Employee;
        var numRows:int = result.data.length;
        for (var i:int = 0; i < numRows; i++)
        {
            emp = result.data[i];
            trace(emp.toString());
        }
    }
}
    

lastInsertRowID

свойство 
lastInsertRowID:Number  [только для чтения]

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0

Последний идентификатор строки, созданный инструкцией SQL INSERT.

Значение равно 0, если выполненная инструкция не была инструкцией INSERT.

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

Дополнительные сведения об основных клавишах и генерируемых идентификаторах строк см. в разделах «CREATE TABLE» и «Выражения» в приложении «Поддержка SQL в локальных базах данных».



Реализация
    public function get lastInsertRowID():Number

Связанные элементы API

    

rowsAffected

свойство 
rowsAffected:Number  [только для чтения]

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0

Указывает количество строк, обработанных операцией. Учитываются только те изменения, которые были непосредственно указаны в инструкции INSERT, UPDATE или DELETE.

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

Следует учесть, что если связанной операцией SQL является инструкция DELETE без предложения WHERE (т. е. инструкция удаляет все строки таблицы), свойство rowsAffected всегда будет равно 0, независимо от числа удаленных строк. Чтобы узнать число удаленных строк, можно добавить предложение WHERE в виде WHERE 1 = 1. В этом случае будут удалены все строки, а свойство rowsAffected будет точно отражать их число. Однако, в зависимости от числа удаляемых строк, это может отрицательно сказаться на производительности инструкции.



Реализация
    public function get rowsAffected():Number

Связанные элементы API

Сведения о конструкторе
    

SQLResult

()Конструктор
public function SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)

Язык версии: ActionScript 3.0
Версии среды выполнения: AIR 1.0

Создает экземпляр SQLResult. Как правило, конструктор SQLResult не вызывается непосредственно в прикладном коде. Чтобы извлечь экземпляр SQLResult, связанный с определенным экземпляром SQLStatement, необходимо вызвать метод getResult() этого экземпляра. Экземпляр SQLResult также передается в качестве аргумента в функцию результирующего обработчика, если при вызове метода execute() или next() указан экземпляр Responder.

Параметры
data:Array (default = null) — Массив строк, возвращенный в результате выполнения инструкции. Если инструкция не возвращает ни одной строки, это значение должно быть равно null.
 
rowsAffected:Number (default = 0) — Указывает количество строк, обработанных выполненной инструкцией.
 
complete:Boolean (default = true) — Указывает, имеются ли дополнительные строки для выборки или все данные были возвращены.
 
rowID:Number (default = 0) — Если инструкция является операцией SQL INSERT, это новый уникальный идентификатор строки.




[ X ]Почему по-английски?
Содержимое Справочника ActionScript 3.0 отображается на английском языке

Не все части Справочника ActionScript 3.0 переводятся на все языки. Если какой-то текстовый элемент не переведен, он отображается на английском языке. Например, компонент ga.controls.HelpBox не переведен ни на один из языков. Это значит, что в русской версии справки компонент ga.controls.HelpBox будет отображаться на английском языке.