Pacote | flash.data |
Classe | public class SQLResult |
Herança | SQLResult Object |
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
A instância SQLResult para uma instrução SQL é acessada chamando o método SQLStatement.getResult()
ou como um argumento passado ao manipulador de resultados de uma instância Responder especificada em uma chamada para SQLStatement.execute()
ou SQLStatement.next()
. Geralmente, o código do desenvolvedor não constrói instâncias SQLResult diretamente.
Use um objeto SQLResult para acessar as linhas de dados retornadas de uma instrução SELECT
(usando a propriedade data
), para obter informações sobre o identificador da linha de uma instrução INSERT
(usando a propriedade lastInsertRowID
), para determinar o número de linhas afetadas por uma instrução INSERT
, UPDATE
ou DELETE
(usando a propriedade rowsAffected
) ou para determinar se há linhas de resultado SELECT
adicionais que não foram recuperadas (usando a propriedade complete
).
Elementos da API relacionados
Propriedade | Definido por | ||
---|---|---|---|
complete : Boolean [somente leitura]
Indica se foram retornados todos os dados resultantes da execução de uma instrução. | SQLResult | ||
constructor : Object
Uma referência ao objeto de classe ou à função de construtor de uma determinada ocorrência de objeto. | Object | ||
data : Array [somente leitura]
Os dados retornados como um resultado da execução da instrução, especificamente quando uma instrução SQL SELECT é executada. | SQLResult | ||
lastInsertRowID : Number [somente leitura]
O identificador da última linha gerada criado por uma instrução SQL INSERT. | SQLResult | ||
rowsAffected : Number [somente leitura]
Indica quantas linhas foram afetadas pela operação. | SQLResult |
Método | Definido por | ||
---|---|---|---|
Cria uma ocorrência SQLResult. | SQLResult | ||
Indica se um objeto tem uma propriedade especificada definida. | Object | ||
Indica se uma ocorrência da classe Object está na cadeia de protótipos do objeto especificado como o parâmetro. | Object | ||
Indica se a propriedade especificada existe e é enumerável. | Object | ||
Define a disponibilidade de uma propriedade dinâmica para operações de repetição. | Object | ||
Retorna a representação da string deste objeto, formatado segundo as convenções específicas para a localidade. | Object | ||
Retorna a representação de string do objeto especificado. | Object | ||
Retorna o valor primitivo do objeto especificado. | Object |
complete | propriedade |
complete:Boolean
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Indica se foram retornados todos os dados resultantes da execução de uma instrução.
Quando uma instrução retorna uma ou mais linhas, essa propriedade indica se todas as linhas foram retornadas. Quando o método execute()
de um objeto SQLStatement é chamado com um valor de argumento prefetch
, somente o número específico de linhas dos dados resultantes é retornado na propriedade data
do objeto SQLResult. Chamadas subsequentes de SQLStatement.next()
fazem com que os dados adicionais se tornem disponíveis. Essa propriedade é usada para determinar quando os resultados finais foram retornados.
Como o número de linhas é desconhecido no momento da execução, o cursor do banco de dados deve mover-se além da última linha antes que a execução de uma instrução seja considerada concluída. Quando o método SQLStatement.execute()
é chamado com um argumento prefetch
, ao menos uma linha a mais do que o número total de linhas no conjunto de resultados deve ser solicitada para que a propriedade complete
da ocorrência SQLResult seja true
.
Implementação
public function get complete():Boolean
Elementos da API relacionados
data | propriedade |
data:Array
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Os dados retornados como um resultado da execução da instrução, especificamente quando uma instrução SQL SELECT
é executada.
Quando uma afirmação retorna uma ou várias linhas, esta propriedade é uma matriz que contém objetos que representam as linhas de dados de resultado. Cada objeto na matriz tem nomes de propriedade que equivalem aos nomes de coluna de conjunto de dados de resultado.
Por exemplo, suponha que você realiza a seguinte instrução SQL SELECT
:
SELECT lastName, firstName FROM employees
Supondo que a tabela employees
contém 10 linhas, a propriedade SQLResult.data
é uma Matriz com 10 elementos. Cada elemento é um objeto com duas propriedades, lastName
e firstName
.
A situação é mais complexa quando você está usando a instruçãoSELECT
com uma coluna de resultados complexa, como uma função agregada. Por exemplo, suponha que você realiza o seguinte SQL:
SELECT departmentId, SUM(salary) FROM employees GROUP BY departmentId
Nos resultados desta afirmação, cada objeto na Matriz data
tem duas propriedades denominadas departmentId
e SUM(salary)
. No entanto, "SUM(salary)" não é um identificador válido. Se você estiver usando uma coluna computada, tal como um agregado ou outra função, especifique um pseudônimo para a coluna computada na sua instrução SQL. O pseudônimo é usado como o nome da propriedade nos objetos de dados de resultado. Por exemplo, considere esta alternativa para a afirmação anterior:
SELECT departmentId, SUM(salary) AS salarySubtotal FROM employees GROUP BY departmentId
Nesta matriz da afirmação data
, os objetos de resultado têm duas propriedades denominadas departmentId
e salarySubtotal
.
O dados
a propriedade é sempre uma Matriz apesar de quantas linhas e colunas estão no conjunto de resultados. Por exemplo, a seguinte instrução SELECT
resulta em uma linha e uma coluna, que é essencialmente um valor exclusivo:
SELECT COUNT(*) AS numEmployees FROM employees
Depois de realizar a pergunta, a propriedade dados
contém um objeto de Matriz com um elemento. Esse elemento é um objeto com uma propriedade única, numEmployees
.
Se houver nomes de coluna duplicados nos dados de resultado, por exemplo se a instrução SELECT
inclui duas colunas de id
diferentes de duas tabelas diferentes, os nomes duplicados serão nomes de propriedade fornecidos segundo o valor da propriedade SQLConnection.columnNameStyle
. Por padrão, o nome de cada coluna é usado como o nome da propriedade, mas se houver diversas colunas no conjunto de resultados com o mesmo nome, o formato de nome longo [table-name] _ [column-name]
é usado para as colunas com os nomes idênticos. Este comportamento pode ser alterado estabelecendo a propriedade SQLConnection.columnNameStyle
.
Por padrão, os objetos na Matriz dados
são instâncias de Objeto. Contudo, ao definir o valor da propriedade SQLStatement.itemClass
para uma classe, os elementos da Matriz data
são criados como ocorrências dessa classe. Para cada coluna no conjunto de dados de resultado, a classe itemClass
deve ter uma propriedade cujo nome combina exatamente com o nome de coluna.
Quando uma instrução não retorna qualquer dado, essa propriedade é null
. Este é o caso se a instrução não for uma instrução SELECT
, ou se for uma instruçãoSELECT
que retorna 0 linhas.
Implementação
public function get data():Array
Elementos da API relacionados
Exemplo ( Como usar este exemplo )
itemClass
para fazer com que o tempo de execução crie ocorrências de uma classe personalizada a partir dos resultados da instrução 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 | propriedade |
lastInsertRowID:Number
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
O identificador da última linha gerada criado por uma instrução SQL INSERT
.
O valor será 0 se a instrução executada não foi uma instrução INSERT
.
Um identificador de linha é usado para identificar exclusivamente uma linha em uma tabela no banco de dados. Geralmente, o valor é gerado pelo banco de dados.
Para obter mais informações sobre chaves primárias e identificadores de linha gerados, consulte as seções "CREATE TABLE" e "Expressões" no apêndice "Suporte SQL em bancos de dados locais".
Implementação
public function get lastInsertRowID():Number
Elementos da API relacionados
rowsAffected | propriedade |
rowsAffected:Number
[somente leitura] Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Indica quantas linhas foram afetadas pela operação. Somente alterações que foram diretamente especificadas por uma instrução INSERT
, UPDATE
ou DELETE
são contadas.
Alterações auxiliares provocadas por disparadores não são contadas. Use a propriedade SQLConnection.totalChanges
para localizar o número total de alterações, inclusive as alterações provocadas por disparadores.
Quando a operação SQL relacionada for uma instrução DELETE
, sem nenhuma cláusula WHERE
(ou seja, a instrução exclui todas as linhas da tabela), a propriedade rowsAffected
será sempre 0, independentemente do número de linhas excluídas. Caso seja necessário saber o número de linhas excluídas, é possível incluir a cláusula WHERE
WHERE 1 = 1
, caso em que todas as linhas serão excluídas e a propriedade rowsAffected
refletirá precisamente o número de linhas excluídas. No entanto, dependendo o número de linhas que estão sendo excluídas, esse procedimento poderá ter um impacto negativo no desempenho da instrução.
Implementação
public function get rowsAffected():Number
Elementos da API relacionados
SQLResult | () | Construtor |
public function SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)
Versão da linguagem: | ActionScript 3.0 |
Versões de runtime: | AIR 1.0 |
Cria uma ocorrência SQLResult. Geralmente, o código do desenvolvedor não chama o construtor SQLResult diretamente. Para recuperar uma instância SQLResult associada a uma determinada instância SQLStatement, chame o método getResult()
da instância. Uma instância SQLResult também é passada como argumento para a função do manipulador resultante quando uma instância Responder é especificada para uma chamada do método execute()
ou next()
.
data:Array (default = null ) — A matriz das linhas retornadas da execução de uma instrução. Se a instrução não retornar nenhuma linha, esse valor deverá ser null.
| |
rowsAffected:Number (default = 0 ) — Indica quantas linhas a instrução executada afetou.
| |
complete:Boolean (default = true ) — Indica se há linhas adicionais que podem ser extraídas ou se todos os dados foram retornados.
| |
rowID:Number (default = 0 ) — Se a instrução foi uma operação SQL INSERT , esta será o novo identificador exclusivo da linha.
|
Wed Jun 13 2018, 11:10 AM Z