ActionScript® 3.0 Referenzhandbuch für die Adobe® Flash®-Plattform
Home  |  Liste der Pakete und Klassen ausblenden |  Pakete  |  Klassen  |  Neue Funktionen  |  Stichwortverzeichnis  |  Anhänge  |  Warum auf Englisch?
Filter: Daten werden vom Server abgerufen...
Daten werden vom Server abgerufen...
flash.data 

SQLResult  - AS3

Paketflash.data
Klassepublic class SQLResult
VererbungSQLResult Inheritance Object

Sprachversion: ActionScript 3.0
Laufzeitversionen: AIR 1.0

Die „SQLResult“-Klasse bietet Zugriff auf Daten, die auf die Ausführung einer SQL-Anweisung (eine „SQLStatement“-Instanz) hin zurückgegeben wurden.

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



Öffentliche Eigenschaften
 EigenschaftDefiniert von
      complete : Boolean
[schreibgeschützt] Gibt an, ob alle aus einer Anweisungsausführung resultierenden Daten zurückgegeben wurden.
SQLResult
 Inheritedconstructor : 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
Öffentliche Methoden
 MethodeDefiniert von
  
    SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)
Erstellt eine „SQLResult“-Instanz.
SQLResult
 Inherited
Gibt an, ob für ein Objekt eine bestimmte Eigenschaft definiert wurde.
Object
 Inherited
Gibt an, ob eine Instanz der Object-Klasse in der Prototypkette des Objekts vorhanden ist, das als Parameter angegeben wurde.
Object
 Inherited
Gibt an, ob die angegebene Eigenschaft vorhanden ist und durchlaufen werden kann.
Object
 Inherited
Legt die Verfügbarkeit einer dynamischen Eigenschaft für Schleifenoperationen fest.
Object
 Inherited
Gibt die Stringdarstellung dieses Objekts zurück, formatiert entsprechend den Konventionen des Gebietsschemas.
Object
 Inherited
Gibt das angegebene Objekt als String zurück.
Object
 Inherited
Gibt den Grundwert des angegebenen Objekts zurück.
Object
Eigenschaftendetails
    

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 )
Das folgende Beispiel demonstriert, wie mithilfe der Eigenschaft 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

Konstruktordetails
    

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.

Parameter
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.




[ X ]Warum auf Englisch?
Inhalt des ActionScript 3.0-Referenzhandbuchs wird in englischer Sprache angezeigt

Nicht alle Teile des ActionScript 3.0-Referenzhandbuchs wurden in alle Sprachen übersetzt. Wenn der Text zu einem Sprachelement nicht übersetzt wurde, wird er auf Englisch angezeigt. Zum Beispiel wurden die Informationen zur ga.controls.HelpBox-Klasse nicht in andere Sprachen übersetzt. In der deutschen Version des Referenzhandbuchs erscheint der Abschnitt zur ga.controls.HelpBox-Klasse deshalb auf Englisch.