Paket | flash.data |
Klasse | public class SQLResult |
Vererbung | SQLResult Object |
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0 |
Der Zugriff auf die SQLResult-Instanz einer SQL-Anweisung erfolgt durch den Aufruf der SQLStatement.getResult()
-Methode, oder sie wird als Argument an die Ergebnisprozedur einer Responder-Instanz übergeben, die in einem Aufruf von SQLStatement.execute()
oder SQLStatement.next()
angegeben wird. Im Allgemeinen werden „SQLResult“-Instanzen nicht direkt aufgrund von Entwicklercode erstellt.
Mit einem SQLResult-Objekt können Sie: auf die von einer SELECT
-Anweisung zurückgegebenen Datenzeilen zugreifen (mithilfe der data
-Eigenschaft), die Zeilenbezeichnerinformationen einer INSERT
-Anweisung abrufen (mithilfe der lastInsertRowID
-Eigenschaft), die Anzahl der von einer INSERT
-, UPDATE
- oder DELETE
-Anweisung betroffenen Zeilen bestimmen (mithilfe der rowsAffected
-Eigenschaft) oder bestimmen, ob es weitere SELECT
-Ergebniszeilen gibt, die nicht abgerufen wurden (mithilfe der complete
-Eigenschaft).
Verwandte API-Elemente
Eigenschaft | Definiert von | ||
---|---|---|---|
complete : Boolean [schreibgeschützt]
Gibt an, ob alle aus einer Anweisungsausführung resultierenden Daten zurückgegeben wurden. | SQLResult | ||
constructor : Object
Ein Verweis auf das Klassenobjekt oder die Konstruktorfunktion für eine angegebene Objektinstanz. | Object | ||
data : Array [schreibgeschützt]
Die als Ergebnis der Anweisungsausführung zurückgegebenen Daten, insbesondere wenn eine SQL „SELECT“-Anweisung ausgeführt wird. | SQLResult | ||
lastInsertRowID : Number [schreibgeschützt]
Der letzte von einer SQL „INSERT“-Anweisung erzeugte Zeilenbezeichner. | SQLResult | ||
rowsAffected : Number [schreibgeschützt]
Gibt an, wieviele Zeilen von dem Vorgang betroffen wurden. | SQLResult |
Methode | Definiert von | ||
---|---|---|---|
Erstellt eine „SQLResult“-Instanz. | SQLResult | ||
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde. | Object | ||
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde. | Object | ||
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann. | Object | ||
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest. | Object | ||
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas. | Object | ||
Gibt das angegebene Objekt als String zurück. | Object | ||
Gibt den Grundwert des angegebenen Objekts zurück. | Object |
complete | Eigenschaft |
complete:Boolean
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0 |
Gibt an, ob alle aus einer Anweisungsausführung resultierenden Daten zurückgegeben wurden.
Wenn die Anweisung eine oder mehrere Zeilen zurückgibt, gibt diese Eigenschaft an, ob alle Zeilen zurückgegeben wurden. Wird die Methode execute()
eines „SQLStatement“-Objekts mit einem prefetch
-Argumentwert aufgerufen, wird nur die angegebene Anzahl Zeilen der resultierenden Daten in der Eigenschaft data
des „SQLResult“-Objekts zurückgegeben. Durch spätere Aufrufe von SQLStatement.next()
werden weitere Daten zur Verfügung gestellt. Mit dieser Eigenschaft wird die Rückgabe der letzten Ergebnisse bestimmt.
Da die Anzahl der Zeilen bei der Ausführung nicht bekannt ist, gilt die Anweisungsausführung erst als abgeschlossen, wenn sich der Datenbankcursor jenseits der letzten Zeile befindet. Wenn die Methode SQLStatement.execute()
mit einem prefetch
-Argument aufgerufen wird, muss die Abfrage mindestens eine Zeile mehr enthalten als die Gesamtzahl der Zeilen im Ergebnis, damit die Eigenschaft complete
der resultierenden „SQLResult“-Instanz den Wert true
aufweist.
Implementierung
public function get complete():Boolean
Verwandte API-Elemente
data | Eigenschaft |
data:Array
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0 |
Die als Ergebnis der Anweisungsausführung zurückgegebenen Daten, insbesondere wenn eine SQL SELECT
-Anweisung ausgeführt wird.
Wenn eine Anweisung eine oder mehrere Zeilen zurückgibt, ist diese Eigenschaft ein Array mit Objekten, die die Zeilen der Ergebnisdaten repräsentiert. Jedes Objekt in diesem Array verfügt über Eigenschaftennamen, die den Spaltennamen aus den Ergebnisdaten entsprechen.
Angenommen, Sie führen die SQL-SELECT
-Anweisung aus:
SELECT lastName, firstName FROM employees
Wenn die employees
-Tabelle 10 Zeilen enthält, ist die SQLResult.data
-Eigenschaft ein Array mit 10 Elementen. Jedes Element ist ein Objekt mit zwei Eigenschaften, lastName
und firstName
.
Die Situation ist komplexer, wenn Sie eine SELECT
-Anweisung mit einer komplexen Ergebnisspalte, zum Beispiel einer Aggregatfunktion, verwenden. Angenommen, Sie führen die folgende SQL aus:
SELECT departmentId, SUM(salary) FROM employees GROUP BY departmentId
In den Ergebnissen dieser Anweisung hat jedes Objekt im data
-Array zwei Eigenschaften, nämlich departmentId
und SUM(salary)
. „SUM(salary)“ ist jedoch kein gültiger Bezeichner. Wenn Sie eine berechnete Spalten verwenden, zum Beispiel ein Aggregat oder eine andere Funktion, geben Sie in Ihrer SQL-Anweisung einen Aliasnamen für die berechnete Spalte an. Der Aliasname wird als Eigenschaftenname in den Ergebnisdatenobjekten verwendet. Betrachten Sie zum Beispiel die folgende Alternative zur vorherigen Anweisung:
SELECT departmentId, SUM(salary) AS salarySubtotal FROM employees GROUP BY departmentId
Im data
-Array dieser Anweisung haben die Ergebnisobjekte zwei Eigenschaften mit den Namen departmentId
und salarySubtotal
.
Die data
-Eigenschaft ist immer ein Array, unabhängig davon, wie viele Reihen und Spalten im Ergebnissatz enthalten sind. Die folgende SELECT
-Anweisung resultiert in einer Zeile und einer Spalte, was einem einzelnen Wert entspricht:
SELECT COUNT(*) AS numEmployees FROM employees
Nach dem Ausführen der Abfrage enthält die data
-Eigenschaft ein Array-Objekt mit einem Element. Dieses Element ist ein Objekt mit einer einzelnen Eigenschaft, numEmployees
.
Falls es in den Ergebnisdaten doppelte Spaltennamen gibt, zum Beispiel, wenn die SELECT
-Anweisung zwei verschiedene id
-Spalten aus zwei verschiedenen Tabellen enthält, erhalten die doppelten Namen Eigenschaftennamen entsprechend dem Wert der SQLConnection.columnNameStyle
-Eigenschaft. Standardmäßig werden die Namen der einzelnen Spalten als Eigenschaftennamen verwendet, wenn es jedoch mehrere Spalten mit demselben Namen im Ergebnissatz gibt, wird für die identisch benannten Spalten die lange Namensform [table-name]_[column-name]
verwendet. Dieses Verhalten kann durch das Festlegen der SQLConnection.columnNameStyle
-Eigenschaft geändert werden.
Standardmäßig handelt es sich bei den Objekten im data
-Array um Object-Instanzen. Wenn der Wert der SQLStatement.itemClass
-Eigenschaft jedoch auf eine Klasse gesetzt wird, werden die Elemente des data
-Arrays stattdessen als Instanzen dieser Klasse erstellt. Für jede Spalte im Ergebnisdatensatz muss die itemClass
-Klasse eine Eigenschaft aufweisen, deren Name genau dem Spaltennamen entspricht.
Wenn eine Anweisung keine Daten zurückgibt, hat diese Eigenschaft den Wert null
. Dies ist der Fall, wenn die Anweisung keine SELECT
-Anweisung ist oder wenn sie eine SELECT
-Anweisung ist, die 0 Zeilen zurückgibt.
Implementierung
public function get data():Array
Verwandte API-Elemente
Beispiel ( Verwendung dieses Beispiels )
itemClass
zur Laufzeit Instanzen einer benutzerdefinierten Klasse aus den Ergebnissen einer SQL SELECT
-Anweisung erstellt werden.
// 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 | Eigenschaft |
lastInsertRowID:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0 |
Der letzte von einer SQL INSERT
-Anweisung erzeugte Zeilenbezeichner.
Handelt es sich bei der ausgeführten Anweisung nicht um eine INSERT
-Anweisung, lautet der Wert „0“.
Ein Zeilenbezeichner dient zur eindeutigen Kennzeichnung einer Zeile in einer Tabelle in der Datenbank. Der Wert wird häufig von der Datenbank erzeugt.
Weitere Informationen zu Primärschlüsseln und generierten Zeilenbezeichnern finden Sie in den Abschnitten „CREATE TABLE“ und „Ausdrücke“ im Anhang „SQL-Unterstützung in lokalen Datenbanken“.
Implementierung
public function get lastInsertRowID():Number
Verwandte API-Elemente
rowsAffected | Eigenschaft |
rowsAffected:Number
[schreibgeschützt] Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0 |
Gibt an, wieviele Zeilen von dem Vorgang betroffen wurden. Es werden nur Änderungen gezählt, die direkt von einer INSERT
-, UPDATE
- oder DELETE
-Anweisung angegeben werden.
Zusätzliche Änderungen, die von Auslösern verursacht werden, werden nicht gezählt. Mithilfe der Eigenschaft SQLConnection.totalChanges
können Sie die Gesamtzahl aller Änderungen, einschließlich derjenigen, die von Auslösern verursacht wurden, in Erfahrung bringen.
Wenn es sich bei der entsprechenden SQL-Methode um eine DELETE
-Anweisung ohne WHERE
-Klausel handelt (d. h. alle in der Tabelle enthaltenen Zeilen werden durch die Anweisung gelöscht), hat die rowsAffected
-Eigenschaft immer den Wert „0“. Dabei ist es gleichgültig, wie viele Zeilen gelöscht wurden. Wenn Sie wissen müssen, wie viele Zeilen gelöscht wurden, können Sie die WHERE
-Klausel WHERE 1 = 1
einschließen. In diesem Fall werden alle Zeilen gelöscht, und die rowsAffected
-Eigenschaft gibt die genaue Anzahl der gelöschten Zeilen wieder. Werden viele Zeilen gelöscht, kann sich dies jedoch nachteilig auf die Leistung der Anweisung auswirken.
Implementierung
public function get rowsAffected():Number
Verwandte API-Elemente
SQLResult | () | Konstruktor |
public function SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)
Sprachversion: | ActionScript 3.0 |
Laufzeitversionen: | AIR 1.0 |
Erstellt eine „SQLResult“-Instanz. Im Allgemeinen wird der „SQLResult“-Konstruktor nicht direkt durch den Entwicklercode aufgerufen. Um eine SQLResult-Instanz abzurufen, die mit einer bestimmten SQLStatement-Instanz verknüpft ist, müssen Sie die getResult()
-Methode dieser Instanz aufrufen. Außerdem wird eine SQLResult-Instanz als Argument an die Ergebnisprozedurfunktion übergeben, wenn eine Responder-Instanz in einem Aufruf der execute()
- oder next()
-Methode angegeben wird.
data:Array (default = null ) — Das Zeilen-Array, das nach der Anweisungsausführung zurückgegeben wurde. Wenn die Anweisung keine Zeilen zurückgibt, muss dieser Wert „null“ lauten.
| |
rowsAffected:Number (default = 0 ) — Gibt an, auf wie viele Zeilen sich die ausgeführte Anweisung ausgewirkt hat.
| |
complete:Boolean (default = true ) — Gibt an, ob weitere Zeilen aufgerufen werden können oder ob alle Daten zurückgegeben wurden.
| |
rowID:Number (default = 0 ) — Handelte es sich bei der Anweisung um einen SQL INSERT -Vorgang, ist dies der neue eindeutige Bezeichner der Zeile.
|
Tue Jun 12 2018, 10:04 AM Z