Package | flash.data |
Classe | public class SQLResult |
Héritage | SQLResult Object |
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
L’occurrence SQLResult d’une instruction SQL est accédée par un appel à la méthode SQLStatement.getResult()
ou sous forme d’argument transmis au gestionnaire de résultats d’une occurrence Responder spécifiée dans un appel à SQLStatement.execute()
ou SQLStatement.next()
. En général, le code du développeur ne construit pas directement d’occurrences SQLResult.
Vous utilisez un objet SQLResult pour accéder aux lignes de données renvoyées par une instruction SELECT
(avec la propriété data
), pour obtenir les informations sur l’identificateur de lignes d’une instruction INSERT
(avec la propriété lastInsertRowID
), pour déterminer le nombre de lignes affectées par une instruction INSERT
, UPDATE
ou DELETE
(avec la propriété rowsAffected
) ou pour déterminer si d’autres lignes de résultats SELECT
n’ont pas été récupérées (avec la propriété complete
).
Plus d’exemples
Eléments de l’API associés
Propriété | Défini par | ||
---|---|---|---|
complete : Boolean [lecture seule]
Indique si toutes les données résultantes d’une exécution d’instruction ont été renvoyées. | SQLResult | ||
constructor : Object
Référence à l’objet de classe ou à la fonction constructeur d’une occurrence donnée d’un objet. | Object | ||
data : Array [lecture seule]
Données renvoyées en tant que résultat de l’exécution de l’instruction, en particulier lorsqu’une instruction SQL SELECT est exécutée. | SQLResult | ||
lastInsertRowID : Number [lecture seule]
Dernier identifiant généré par une instruction SQL INSERT. | SQLResult | ||
rowsAffected : Number [lecture seule]
Indique le nombre de lignes affectées par l’opération. | SQLResult |
Méthode | Défini par | ||
---|---|---|---|
Crée une occurrence SQLResult. | SQLResult | ||
Indique si la propriété spécifiée d’un objet est définie. | Object | ||
Indique si une occurrence de la classe Object figure dans la chaîne de prototype de l’objet spécifié en tant que paramètre. | Object | ||
Indique si la propriété spécifiée existe et est énumérable. | Object | ||
Définit la disponibilité d’une propriété dynamique pour les opérations en boucle. | Object | ||
Renvoie la représentation de chaîne de cet objet, formatée selon les paramètres régionaux en vigueur. | Object | ||
Renvoie la représentation sous forme de chaîne de l’objet spécifié. | Object | ||
Renvoie la valeur primitive de l’objet spécifié. | Object |
complete | propriété |
complete:Boolean
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Indique si toutes les données résultantes d’une exécution d’instruction ont été renvoyées.
Lorsqu’une instruction renvoie une ou plusieurs lignes, cette propriété indique si toutes les lignes ont été renvoyées. Lorsque la méthode execute()
de l’objet SQLStatement est appelée avec une valeur d’argument prefetch
, seul le nombre de lignes de données résultantes spécifié est renvoyé dans la propriété data
de l’objet SQLResult. Les appels suivants à SQLStatement.next()
rendent d’autres données disponibles. Cette propriété est utilisée pour déterminer le moment où les résultats finaux ont été renvoyés.
Notez que, le nombre de lignes étant inconnu au moment de l’exécution, le curseur de la base de données doit se déplacer au-delà de la dernière ligne pour que l’exécution d’une instruction soit considérée comme complète. Lorsque la méthode SQLStatement.execute()
est appelée avec un argument prefetch
, au moins une ligne de plus que le nombre total de lignes du jeu de résultats doit être demandée avant que la propriété complete
de l’occurrence SQLResult résultante soit true
.
Implémentation
public function get complete():Boolean
Eléments de l’API associés
data | propriété |
data:Array
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Données renvoyées en tant que résultat de l’exécution de l’instruction, en particulier lorsqu’une instruction SQL SELECT
est exécutée.
Lorsqu’une instruction renvoie une ou plusieurs lignes, cette propriété est un tableau contenant les objets qui représentent les lignes de données de résultat. Chaque objet dans le tableau possède des noms de propriété qui correspondent aux noms des colonnes du jeu de résultats.
Par exemple, supposons que vous exécutez l’instruction SQL SELECT
suivante :
SELECT lastName, firstName FROM employees
En supposant que la table employees
contient 10 lignes, la propriété SQLResult.data
est un tableau de 10 éléments. Chaque élément est un objet avec deux propriétés : lastName
et firstName
.
La situation est plus complexe lorsque vous utilisez une instruction SELECT
avec une colonne de résultats complexes, par exemple une fonction de regroupement. Par exemple, supposons que vous exécutez l’instruction SQL suivante :
SELECT departmentId, SUM(salary) FROM employees GROUP BY departmentId
Dans les résultats de cette instruction, chaque objet du tableau data
comprend deux propriétés nommées departmentId
et SUM(salary)
. Toutefois, "SUM(salary)" n’est pas un identifiant valable. Si vous utilisez une colonne calculée, par exemple une fonction de regroupement ou autre, spécifiez un alias pour la colonne calculée dans l’instruction SQL. Cet alias est utilisé comme nom de la propriété dans les objets de données de résultat. Par exemple, considérons cette alternative à l’instruction précédente :
SELECT departmentId, SUM(salary) AS salarySubtotal FROM employees GROUP BY departmentId
Dans le tableau data
de cette instruction, les objets de résultat possèdent deux propriétés nommées departmentId
et salarySubtotal
.
La propriété data
est toujours un tableau, quel que soit le nombre de lignes et de colonnes du jeu de résultats. Par exemple, l’instruction SELECT
suivante génère une ligne et une colonne, qui représentent une valeur unique :
SELECT COUNT(*) AS numEmployees FROM employees
Après avoir exécuté la requête, la propriété data
contient un objet Array avec un élément. Cet élément est un objet avec une seule propriété, numEmployees
.
Si plusieurs noms de colonne sont dupliqués dans les données de résultat, notamment si l’instruction SELECT
comporte deux colonnes id
différentes de deux tableaux distincts, des noms de propriété sont attribués aux noms dupliqués en fonction de la valeur de la propriété SQLConnection.columnNameStyle
. Par défaut, le nom de chaque colonne est utilisé comme nom de la propriété. Néanmoins, s’il existe plusieurs colonnes dans le jeu de résultats portant le même nom, le format de nom long [nom-table]_[nom-colonne]
est utilisé chaque fois que le nom de plusieurs colonnes est identique. Ce comportement peut être modifié en définissant la propriétéSQLConnection.columnNameStyle
.
Par défaut, les objets du tableau data
sont des occurrences d’Object. Toutefois, si la valeur de la propriété SQLStatement.itemClass
d’une classe est définie, les éléments du tableau data
sont créés sous forme d’occurrences de cette classe. Pour chaque colonne du jeu de données de résultat, la classe itemClass
doit avoir une propriété dont le nom correspond exactement au nom de la colonne.
Lorsque l’instruction ne renvoie aucune donnée, cette propriété est null
. C’est le cas notamment s’il ne s’agit pas d’une instruction SELECT
ou s’il s’agit d’une instruction SELECT
qui renvoie 0 ligne.
Implémentation
public function get data():Array
Eléments de l’API associés
Exemple ( Comment utiliser cet exemple )
itemClass
pour que l’exécution crée des occurrences d’une classe personnalisée à partir des résultats de l’instruction 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 | propriété |
lastInsertRowID:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Dernier identifiant généré par une instruction SQL INSERT
.
La valeur est 0 si l’instruction exécutée n’était pas une instruction INSERT
.
Un identifiant de ligne est utilisé pour identifier une ligne de façon unique dans un tableau au sein d’une base de données. La valeur est générée fréquemment par la base de données.
Pour plus d’informations sur les clés primaires et les identifiants de ligne générés, voir les sections « CREATE TABLE » et « Expressions » dans l’annexe « Prise en charge SQL dans les bases de données locales ».
Implémentation
public function get lastInsertRowID():Number
Plus d’exemples
Eléments de l’API associés
rowsAffected | propriété |
rowsAffected:Number
[lecture seule] Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Indique le nombre de lignes affectées par l’opération. Seules les modifications spécifiées directement par une instruction INSERT
, UPDATE
ou DELETE
sont comptées.
Les modifications auxiliaires causées par des déclencheurs ne sont pas prises en compte. Pour connaître le nombre total de modifications, y compris dues à des déclencheurs, utilisez la propriété SQLConnection.totalChanges
.
Notez que, lorsque l’opération SQL associée est une instruction DELETE
sans clause WHERE
(c’est-à-dire qu’elle supprime toutes les lignes de la table), la propriété rowsAffected
est toujours 0, quel que soit le nombre de lignes supprimées. Pour connaître le nombre de lignes supprimées, vous pouvez inclure la clause WHERE
, WHERE 1 = 1
. Dans ce cas toutes les lignes sont supprimées et la propriété rowsAffected
indique précisément le nombre de lignes supprimées. Toutefois, selon le nombre de lignes supprimées, cette opération affecte négativement les performances de l’instruction.
Implémentation
public function get rowsAffected():Number
Eléments de l’API associés
SQLResult | () | Constructeur |
public function SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)
Version du langage: | ActionScript 3.0 |
Versions du moteur d’exécution: | AIR 1.0 |
Crée une occurrence SQLResult. En général, le code du développeur n’appelle pas directement le constructeur SQLResult. Pour récupérer une occurrence SQLResult associée à une occurrence SQLStatement particulière, appelez la méthode getResult()
de l’occurrence. Une occurrence SQLResult est également transmise sous forme d’argument à la fonction gestionnaire de résultats lorsqu’une occurrence Responder est spécifiée pour un appel de méthode execute()
ou next()
.
data:Array (default = null ) — Tableau de lignes renvoyées par l’exécution d’une instruction. Si l’instruction ne renvoie aucune ligne, cette valeur doit être nulle.
| |
rowsAffected:Number (default = 0 ) — Indique le nombre de ligne affectées par l’instruction exécutée.
| |
complete:Boolean (default = true ) — Indique si d’autres lignes peuvent être récupérées ou si toutes les données ont été renvoyées.
| |
rowID:Number (default = 0 ) — Si l’instruction était une opération SQL INSERT , il s’agit du nouvel identifiant unique de la ligne.
|
Tue Jun 12 2018, 09:30 AM Z