Pacchetto | flash.data |
Classe | public class SQLResult |
Ereditarietà | SQLResult Object |
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
All'istanza SQLResult per un'istruzione SQL si accede chiamando il metodo SQLStatement.getResult()
o sotto forma di argomento passato al gestore di risultati di un'istanza Responder specificata in una chiamata a SQLStatement.execute()
o a SQLStatement.next()
. Di solito, il codice dello sviluppatore non costruisce direttamente le istanze SQLResult.
Potete utilizzare un oggetto SQLResult per accedere alle righe di dati restituite da un'istruzione SELECT
(mediante la proprietà data
), per ottenere informazioni sull'identificatore di riga per un'istruzione INSERT
(mediante la proprietà lastInsertRowID
), per determinare il numero di righe interessate da un'istruzione INSERT
, UPDATE
o DELETE
(mediante la proprietà rowsAffected
) o per determinare se sono presenti altre righe SELECT
che non sono state recuperate (mediante la proprietà complete
).
Altri esempi
Elementi API correlati
Proprietà | Definito da | ||
---|---|---|---|
complete : Boolean [sola lettura]
Indica se sono stati restituiti tutti i dati risultanti dall'esecuzione di un'istruzione. | SQLResult | ||
constructor : Object
Un riferimento all'oggetto classe o alla funzione di costruzione per una determinata istanza di oggetto. | Object | ||
data : Array [sola lettura]
I dati restituiti come risultato dell'esecuzione dell'istruzione, specificamente quando viene eseguita un'istruzione SQL SELECT. | SQLResult | ||
lastInsertRowID : Number [sola lettura]
L'ultimo identificatore riga generato da un'istruzione SQL INSERT. | SQLResult | ||
rowsAffected : Number [sola lettura]
Indica quante righe sono state interessate dall'operazione. | SQLResult |
Metodo | Definito da | ||
---|---|---|---|
Crea un'istanza SQLResult. | SQLResult | ||
Indica se per un oggetto è definita una proprietà specifica. | Object | ||
Indica se un'istanza della classe Object si trova nella catena di prototipi dell'oggetto specificato come parametro. | Object | ||
Indica se la proprietà specificata esiste ed è enumerabile. | Object | ||
Imposta la disponibilità di una proprietà dinamica per le operazioni cicliche. | Object | ||
Restituisce la rappresentazione in formato stringa di questo oggetto, formattato in base alle convenzioni specifiche per le versioni localizzate. | Object | ||
Restituisce la rappresentazione in formato stringa dell'oggetto specificato. | Object | ||
Restituisce il valore di base dell'oggetto specificato. | Object |
complete | proprietà |
complete:Boolean
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Indica se sono stati restituiti tutti i dati risultanti dall'esecuzione di un'istruzione.
Quando un'istruzione restituisce una o più righe, questa proprietà indica se tutte le righe sono state restituite. Quando viene chiamato il metodo execute()
di un oggetto SQLStatement con un valore di argomento prefetch
, solo il numero di righe specificato nei dati risultanti viene restituito nella proprietà data
dell'oggetto SQLResult. Le successive chiamate a SQLStatement.next()
rendono disponibili altri dati. Questa proprietà viene utilizzata per determinare quando sono stati restituiti i risultati finali.
Poiché il numero di righe è sconosciuto al momento dell'esecuzione, il cursore del database deve spostarsi oltre l'ultima riga prima che l'esecuzione di un'istruzione venga considerata completata. Quando il metodo SQLStatement.execute()
viene chiamato con un argomento prefetch
, è necessario richiedere almeno una riga in più rispetto al numero totale di righe nel set di risultati prima che la proprietà complete
dell'istanza SQLResult risultante sia true
.
Implementazione
public function get complete():Boolean
Elementi API correlati
data | proprietà |
data:Array
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
I dati restituiti come risultato dell'esecuzione dell'istruzione, specificamente quando viene eseguita un'istruzione SQL SELECT
.
Quando un'istruzione restituisce una o più righe, questa proprietà corrisponde a un array che contiene degli oggetti che rappresentano le righe dei dati relativi ai risultati. Ogni oggetto nell'array dispone di nomi di proprietà che corrispondono ai nomi delle colonne del gruppo di dati dei risultati.
Supponente, ad esempio, di eseguire l'istruzione SELECT
seguente:
SELECT lastName, firstName FROM employees
Supponendo che la tabella employees
contenga 10 righe, la proprietà SQLResult.data
è un array con 10 elementi. Ogni elemento è un oggetto con due proprietà, lastName
e firstName
.
Questa situazione è più complessa quando utilizzate un'istruzione SELECT
con una colonna dei risultati complessa, ad esempio una funzione di aggregazione. Supponete, ad esempio, di eseguire la seguente istruzione SQL:
SELECT departmentId, SUM(salary) FROM employees GROUP BY departmentId
Nei risultati di questa istruzione ogni oggetto nell'array data
dispone di due proprietà con nome departmentId
e SUM(salary)
. "SUM(salary)" non è tuttavia un identificatore valido. Se utilizzate una colonna calcolata, ad esempio una funzione di aggregazione o di altro tipo, specificate un alias per la colonna calcolata nell'istruzione SQL. L'alias viene usato come nome della proprietà negli oggetti relativi ai dati dei risultati. Considerate, ad esempio, questa alternativa all'istruzione precedente:
SELECT departmentId, SUM(salary) AS salarySubtotal FROM employees GROUP BY departmentId
Nell'array data
di questa istruzione, gli oggetti relativi ai risultati dispongono di due proprietà con nome departmentId
e salarySubtotal
.
La proprietà data
è sempre un array, indipendente dal numero di righe e colonne presenti nel gruppo dei risultati. La seguente istruzione SELECT
, ad esempio, restituisce una riga e una colonna, che corrisponde essenzialmente a un singolo valore:
SELECT COUNT(*) AS numEmployees FROM employees
Dopo l'esecuzione della query, la proprietà data
contiene un oggetto Array con un elemento. Tale elemento è un oggetto con una singola proprietà, numEmployees
.
Se nei dati dei risultati sono presenti nomi di colonne duplicati, ad esempio se l'istruzione SELECT
include due diverse colonne id
di due tabelle diverse, ai nomi duplicati vengono assegnati nomi di proprietà in base al valore della proprietà SQLConnection.columnNameStyle
. Per impostazione predefinita, viene utilizzato il nome di ogni colonna come nome della proprietà, ma se nel gruppo dei risultati sono presenti più colonne con lo stesso nome, per le colonne con nome identico viene utilizzato il formato di nome lungo [nome-tabella]_[nome-colonna]
. Potete modificare questo comportamento impostando la proprietà SQLConnection.columnNameStyle
.
Per impostazione predefinita, gli oggetti nell'array data
sono istanze di Object. Se tuttavia impostate il valore della proprietà SQLStatement.itemClass
su una classe, gli elementi dell'array data
vengono creati come istanze di tale classe. Per ogni colonna nel gruppo di dati dei risultati, è necessario che la classe itemClass
disponga di una proprietà il cui nome corrisponde esattamente al nome della colonna.
Se un'istruzione non restituisce alcun dato, questa proprietà è null
. Ciò si verifica se l'istruzione non è un'istruzione SELECT
o se si tratta di un'istruzione a SELECT
che restituisce 0 righe.
Implementazione
public function get data():Array
Elementi API correlati
Esempio ( Come utilizzare questo esempio )
itemClass
per fare in modo che il runtime crei delle istanze di una classe personalizzata dai risultati dell'istruzione 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 | proprietà |
lastInsertRowID:Number
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
L'ultimo identificatore riga generato da un'istruzione SQL INSERT
.
Il valore è 0 se l'istruzione eseguita non era un'istruzione INSERT
.
Un identificatore riga viene utilizzato per identificare in modo univoco una riga in una tabella di database. Il valore viene spesso generato dal database.
Per ulteriori informazioni sulle chiavi principali e sugli identificatori di riga generati, vedete le sezioni CREATE TABLE ed Espressioni nell'appendice Supporto SQL nei database locali.
Implementazione
public function get lastInsertRowID():Number
Altri esempi
Elementi API correlati
rowsAffected | proprietà |
rowsAffected:Number
[sola lettura] Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Indica quante righe sono state interessate dall'operazione. Vengono considerate solo le modifiche che vengono specificate direttamente da un'istruzione INSERT
, UPDATE
o DELETE
.
Le modifiche ausiliarie provocate dai trigger non vengono considerate. Utilizzate la proprietà SQLConnection.totalChanges
per individuare il numero totale di modifiche comprese quelle provocate dai trigger.
Quando l'operazione SQL correlata è un'istruzione DELETE
senza alcuna clausola WHERE
(ad esempio, quando l'istruzione elimina tutte le righe nella tabella), la tabella rowsAffected
è sempre 0, a prescindere dal numero di righe eliminate. Se dovete conoscere il numero di righe eliminate, potete includere la clausola WHERE
WHERE 1 = 1
, nel qual caso tutte le righe vengono eliminate e la proprietà rowsAffected
rispecchia fedelmente il numero di righe eliminate. Tuttavia, a seconda del numero di righe da eliminare, questa operazione potrebbe avere un impatto negativo sulle prestazioni dell'istruzione.
Implementazione
public function get rowsAffected():Number
Elementi API correlati
SQLResult | () | Funzione di costruzione |
public function SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)
Versione linguaggio: | ActionScript 3.0 |
Versioni runtime: | AIR 1.0 |
Crea un'istanza SQLResult. Di solito, il codice dello sviluppatore non chiama direttamente la funzione di costruzione SQLResult. Per recuperare un'istanza SQLResult associata a una specifica istanza SQLStatement, chiamate il metodo getResult()
dell'istanza. Viene passata anche un'istanza SQLResult come argomento al gestore di risultati quando specificate un'istanza Responder per una chiamata a un metodo execute()
o next()
.
data:Array (default = null ) — L'array di righe restituite dall'esecuzione di un'istruzione. Se l'istruzione non restituisce alcuna riga, questo valore deve essere null.
| |
rowsAffected:Number (default = 0 ) — Indica quante righe sono interessate dall'esecuzione dell'istruzione.
| |
complete:Boolean (default = true ) — Indica se sono presenti altre righe da caricare o se sono stati restituiti tutti i dati.
| |
rowID:Number (default = 0 ) — Se l'istruzione era un'operazione SQL INSERT , si tratta del nuovo identificatore univoco per la riga.
|
Tue Jun 12 2018, 02:44 PM Z