Пакет | flash.data |
Класс | public class SQLResult |
Наследование | SQLResult Object |
Язык версии: | ActionScript 3.0 |
Версии среды выполнения: | AIR 1.0 |
Экземпляр 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 | ||
constructor : Object
Ссылка на объект класса или функцию конструктора для данного экземпляра объекта. | Object | ||
data : Array [только для чтения]
Данные, возвращаемые в результате выполнения инструкции, особенно инструкции SQL SELECT. | SQLResult | ||
lastInsertRowID : Number [только для чтения]
Последний идентификатор строки, созданный инструкцией SQL INSERT. | SQLResult | ||
rowsAffected : Number [только для чтения]
Указывает количество строк, обработанных операцией. | SQLResult |
Метод | Определено | ||
---|---|---|---|
Создает экземпляр SQLResult. | SQLResult | ||
Показывает, определено ли заданное свойство для объекта. | Object | ||
Показывает, есть ли экземпляр класса Object в цепи прототипов объекта, заданного в качестве параметра. | Object | ||
Показывает наличие заданного свойства и его перечисляемость. | Object | ||
Задает доступность динамического свойства для операций цикла. | Object | ||
Возвращает строковое представление этого объекта, отформатированного в соответствии со стандартами, принятыми для данной локали. | Object | ||
Возвращает строковое представление заданного объекта. | Object | ||
Возвращает элементарное значение заданного объекта. | 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 , это новый уникальный идентификатор строки.
|
Tue Jun 12 2018, 11:34 AM Z