ActionScript® 3.0 — dokumentacja dla platformy Adobe® Flash®
Strona główna  |  Ukryj listę pakietów i klas |  Pakiety  |  Klasy  |  Nowości  |  Indeks  |  Dodatki  |  Dlaczego język angielski?
Filtry: Pobieranie danych z serwera...
Pobieranie danych z serwera...
flash.data 

SQLResult  - AS3

Pakietflash.data
Klasapublic class SQLResult
DziedziczenieSQLResult Inheritance Object

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0

Klasa SQLResult zapewnia dostęp do danych zwróconych w odpowiedzi na wykonanie instrukcji SQL (wystąpienia klasy SQLStatement).

Do instancji klasy SQLResult dla zapytania SQL można uzyskać dostęp przez wywołanie metody SQLStatement.getResult() lub przez przekazanie jej jako argumentu do procedury obsługi wyniku instancji klasy Responder określonej w wywołaniu metody SQLStatement.execute() lub SQLStatement.next(). Zazwyczaj instancje klasy SQLResult nie są tworzone bezpośrednio w kodzie pisanym przez programistę.

Instancja klasy SQLResult zapewnia dostęp do wierszy danych zwracanych przez instrukcję SELECT (za pomocą właściwościdata) w celu pobrania informacji o identyfikatorze wiersza dla instrukcji INSERT (za pomocą właściwości lastInsertRowID), w celu zdefiniowania liczby wierszy objętych instrukcjąINSERT, UPDATE lub DELETE (za pomocą właściwości rowsAffected) lub w celu określenia, czy istnieją dodatkowe wiersze, które nie zostały pobrane z wyniku działania instrukcji SELECT (za pomocą właściwości complete).

Powiązane elementy interfejsu API



Właściwości publiczne
 WłaściwośćZdefiniowane przez
      complete : Boolean
[tylko do odczytu] Wskazuje, czy wszystkie dane wynikowe wykonania instrukcji zostały zwrócone.
SQLResult
 Inheritedconstructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu.
Object
      data : Array
[tylko do odczytu] Dane zwrócone w wyniku wykonania instrukcji, specyficzne dla wykonania instrukcji SELECT.
SQLResult
      lastInsertRowID : Number
[tylko do odczytu] Ostatni identyfikator wiersza wygenerowany za pomocą instrukcji INSERT.
SQLResult
      rowsAffected : Number
[tylko do odczytu] Wskazuje, jaka liczba wierszy została zmieniona przez operację.
SQLResult
Metody publiczne
 MetodaZdefiniowane przez
  
    SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)
Tworzy instancję klasy SQLResult.
SQLResult
 Inherited
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość.
Object
 Inherited
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr.
Object
 Inherited
Wskazuje, czy określona właściwość istnieje i jest przeliczalna.
Object
 Inherited
Ustawia dostępność właściwości dynamicznej używanej w pętlach.
Object
 Inherited
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych.
Object
 Inherited
Zwraca ciąg reprezentujący określony obiekt.
Object
 Inherited
Zwraca pierwotną wartość dla określonego obiektu.
Object
Szczegół właściwości
    

complete

właściwość
complete:Boolean  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0

Wskazuje, czy wszystkie dane wynikowe instrukcji zostały zwrócone.

Jeśli instrukcja zwraca jeden lub więcej wierszy, ta właściwość wskazuje, czy wszystkie wiersze zostały zwrócone. Jeśli metoda execute() obiektu SQLStatement zostanie wywołana z wartością argumentu prefetch, jedynie określona liczba wierszy danych wynikowych zostanie zwrócona we właściwości data obiektu SQLResult. Kolejne wywołania metody SQLStatement.next() spowodują, że dodatkowe dane staną się dostępne. Ta właściwość jest stosowana w celu ustalenia, że zwrócone zostały już ostateczne wyniki.

Należy zauważyć, że liczba wierszy nie jest znana w czasie wykonania, dlatego wykonywanie instrukcji jest uznawane za zakończone dopiero wtedy, gdy kursor bazy danych znajdzie się za ostatnim wierszem. Jeśli metoda SQLStatement.execute() zostanie wywołana z argumentem prefetch, właściwość complete wynikowej instancji klasy SQLResult osiągnie wartość true dopiero wtedy, gdy liczba żądanych wierszy przekroczy co najmniej o jeden całkowitą liczbę wierszy w zestawie wyników.



Implementacja
    public function get complete():Boolean

Powiązane elementy interfejsu API

    

data

właściwość 
data:Array  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0

Dane zwrócone w wyniku wykonania instrukcji, specyficzne dla wykonania instrukcji SELECT.

Gdy instrukcja zwróci jeden lub większą liczbę wierszy, ta właściwość będzie tablicą zawierającą obiekty, które reprezentują wiersze danych wynikowych. Każdy obiekt w tablicy zawiera nazwy właściwości, które odpowiadają nazwom kolumn zestawu danych wynikowych.

Na przykład: jeśli założymy, że wykonywana jest następująca instrukcja SQL SELECT:

     SELECT lastName, firstName
     FROM employees
     

Przy założeniu, że tabela employees zawiera 10 wierszy właściwość SQLResult.data jest tablicą z dziesięcioma elementami. Każdy element jest obiektem z dwiema właściwościami: lastName i firstName.

Sytuacja jest bardziej złożona, jeśli instrukcja SELECT jest używana z kolumną bardziej złożonych wyników, np. z funkcją agregacji. Przykład: załóżmy, że wykonano następującą instrukcję SQL:

     SELECT departmentId, SUM(salary)
     FROM employees
     GROUP BY departmentId
     

W wynikach tej instrukcji każdy obiekt w tablicy data zawiera dwie właściwości o nazwach departmentId i SUM(salary). Jednak „SUM(salary)” nie jest poprawnym identyfikatorem. Jeśli używana jest kolumna obliczona, taka jak agregat lub inna funkcja, należy określić alias dla obliczonej kolumny w instrukcji SQL. Alias będzie używany jako nazwa właściwości w obiektach danych wynikowych. Przykład: rozważmy następującą alternatywę poprzedniej instrukcji:

     SELECT departmentId, SUM(salary) AS salarySubtotal
     FROM employees
     GROUP BY departmentId
     

W tablicy data tej instrukcji obiekty wynikowe zawierają dwie właściwości o nazwach departmentId i salarySubtotal.

Właściwość data jest zawsze tablicą bez względu na liczbę wierszy i kolumn w zestawie wynikowym. Na przykład: poniższa instrukcja SELECT zwraca jeden wiersz i jedną kolumnę, co stanowi jedną wartość:

     SELECT COUNT(*) AS numEmployees
     FROM employees
     

Po wykonaniu zapytania właściwość data zawiera obiekt Array z jednym elementem. Ten element jest obiektem z jedną właściwością numEmployees.

Jeśli dane wynikowe zawierają zduplikowane nazwy kolumn, np. jeśli instrukcja SELECT zwraca dwie różne kolumny id dla dwóch różnych tabel, wówczas duplikaty otrzymują nazwy właściwości zgodnie z wartością właściwości SQLConnection.columnNameStyle. Domyślnie nazwa każdej kolumny jest używana jako nazwa właściwości, ale jeśli zestaw wynikowy zawiera wiele kolumn o takiej samej nazwie, wówczas dla kolumn o identycznych nazwach stosowany jest format długich nazw [nazwa-tabeli]_[nazwa-kolumny]. To działanie można zmienić poprzez ustawienie właściwości SQLConnection.columnNameStyley.

Domyślnie obiekty w tablicy data są instancjami klasy Object. Jednak ustawienie klasy dla właściwości SQLStatement.itemClass powoduje, że elementy tablicy data są tworzone jako instancje tej klasy. Dla każdej kolumny w zestawie danych wynikowych klasa itemClass musi zawierać właściwość, której nazwa będzie zgodna z nazwą kolumny.

Jeśli instrukcja nie zwraca żadnych danych, ta właściwość ma wartość null. Dochodzi do tego w przypadku instrukcji innej niż SELECT oraz w przypadku instrukcji SELECT, które zwracają 0 wierszy.



Implementacja
    public function get data():Array

Powiązane elementy interfejsu API


Przykład  ( Sposób korzystania z tego przykładu )
Poniższy kod ilustruje wykorzystanie właściwości itemClass do automatycznego utworzenia instancji klasy niestandardowej na podstawie wyników instrukcji 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

właściwość 
lastInsertRowID:Number  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0

Ostatni identyfikator wiersza wygenerowany za pomocą instrukcji INSERT.

Wartością jest 0, jeśli wykonaną instrukcją nie była instrukcja INSERT.

Identyfikator wiersza jednoznacznie identyfikuje wiersz w tabeli bazy danych. Jego wartość jest często generowana przez bazę danych.

Więcej informacji na temat kluczy podstawowych i generowanych identyfikatorów wierszy zawiera sekcja dotycząca instrukcji „CREATE TABLE” oraz sekcja „Wyrażenia” w dodatku „Obsługa języka SQL w lokalnych bazach danych”.



Implementacja
    public function get lastInsertRowID():Number

Powiązane elementy interfejsu API

    

rowsAffected

właściwość 
rowsAffected:Number  [tylko do odczytu]

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0

Wskazuje, jaka liczba wierszy została zmieniona przez operację. Zliczane są jedynie zmiany, które zostały bezpośrednio określone przez instrukcje INSERT, UPDATE lub DELETE.

Dodatkowe zmiany wywołane działaniem wyzwalaczy nie są zliczane. Aby określić całkowitą liczbę zmian, uwzględniającą także zmiany wywołane działaniem wyzwalaczy, należy skorzystać z właściwości SQLConnection.totalChanges.

Należy zauważyć, że jeśli powiązaną operacją SQL jest instrukcja DELETE bez klauzuli WHERE (tzn. instrukcja usuwająca wszystkie wiersze w tabeli), właściwość rowsAffected ma zawsze wartość 0, niezależnie od liczby wierszy, które zostały usunięte. Jeśli potrzebna będzie wiedza na temat liczby usuniętych wierszy, należy dołączyć klauzulę WHERE (WHERE 1 = 1), w takim wypadku wszystkie wiersze zostaną usunięte, a właściwość rowsAffected dokładnie odzwierciedli liczbę usuniętych wierszy. Jednak w zależności od liczby wierszy, które zostały usunięte, wykonanie takiej czynności może mieć ujemny wpływ na działanie instrukcji.



Implementacja
    public function get rowsAffected():Number

Powiązane elementy interfejsu API

Konstruktor Szczegół
    

SQLResult

()Konstruktor
public function SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)

Wersja języka: ActionScript 3.0
Wersje środowiska wykonawczego: AIR 1.0

Tworzy instancję klasy SQLResult. Zazwyczaj konstruktor klasy SQLResult nie jest wywoływany bezpośrednio w kodzie pisanym przez programistę. Aby pobrać instancję klasy SQLResult skojarzoną z konkretną instancją klasy SQLStatement, należy wywołać metodę getResult() instancji. Instancja klasy SQLResult jest również przekazywana jako argument do procedury obsługi wyniku, gdy instancja klasy Responder zostanie określona dla wywołania metody execute() lub next().

Parametry
data:Array (default = null) — Tablica wierszy zwracanych w wyniku wykonania instrukcji. Jeśli instrukcja nie zwraca żadnych wierszy, tę wartość należy określić jako null.
 
rowsAffected:Number (default = 0) — Określa liczbę wierszy zmienionych przez wykonaną instrukcję.
 
complete:Boolean (default = true) — Wskazuje, czy są dodatkowe wiersze, które można pobrać, czy też wszystkie dane zostały już zwrócone.
 
rowID:Number (default = 0) — Jeśli instrukcją SQL była instrukcja INSERT, ta wartość będzie niepowtarzalnym identyfikatorem nowego wiersza.




[ X ]Dlaczego język angielski?
Treść dokumentacji języka ActionScript 3.0 wyświetlana w języku angielskim

Niektóre części dokumentacji języka ActionScript 3.0 nie są przetłumaczone na poszczególne języki. Gdy element nie jest przetłumaczony na dany język, jest wyświetlany tekst angielski. Na przykład opis klasy ga.controls.HelpBox nie jest przetłumaczony na żaden dodatkowy język. Z tego powodu polska wersja dokumentacji zawiera opis klasy ga.controls.HelpBox w języku angielskim.