Pakiet | flash.data |
Klasa | public class SQLStatement |
Dziedziczenie | SQLStatement EventDispatcher Object |
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Instancja klasy SQLStatement jest powiązana z instancją klasy SQLConnection jako wartość właściwości sqlConnection
instancji klasy SQLStatement. Właściwość text
jest wypełniana tekstem instrukcji SQL do wykonania. W razie potrzeby wartości parametrów instrukcji SQL są określane za pomocą właściwości parameters
, a instrukcja jest wykonywana przez wywołanie metody execute()
.
Aby zapoznać się z pełnym opisem dialektu języka SQL obsługiwanego w lokalnych bazach danych, zobacz dodatek Obsługa języka SQL w lokalnych bazach danych.
W asynchronicznym trybie wykonywania metody execute()
oraz next()
są wykonywane w tle, a w środowisku wykonawczym zdarzenia kierowane są do zarejestrowanych detektorów zdarzeń lub do określonej instancji klasy Responder, gdy operacje zakończą się pomyślnie lub zakończą się niepowodzeniem. W synchronicznym trybie wykonywania metody są wykonywane w głównym wątku programu, co oznacza, że żaden inny kod nie zostanie wykonany, dopóki nie zostaną zakończone operacje w bazie danych. Ponadto, jeśli w synchronicznym trybie wykonywania metody zakończą się niepowodzeniem, środowisko wykonawcze wygeneruje wyjątek, a nie zdarzenie błędu.
Powiązane elementy interfejsu API
Właściwość | Zdefiniowane przez | ||
---|---|---|---|
constructor : Object
Odwołanie do obiektu klasy lub funkcji konstruktora, dotyczące danej instancji obiektu. | Object | ||
executing : Boolean [tylko do odczytu]
Wskazuje, czy instrukcja jest w tej chwili wykonywana. | SQLStatement | ||
itemClass : Class
Wskazuje klasę (typ danych) używaną dla każdego wiersza zwracanego jako wynik wykonania instrukcji. | SQLStatement | ||
parameters : Object [tylko do odczytu]
Pełni funkcję tablicy asocjacyjnej, do której dodaje się wartości parametrów określonych we właściwości text instrukcji SQL. | SQLStatement | ||
sqlConnection : SQLConnection
Obiekt SQLConnection zarządzający połączeniami z bazami danych, na których wykonywana jest instrukcja. | SQLStatement | ||
text : String
Bieżąca wartość instrukcji SQL. | SQLStatement |
Metoda | Zdefiniowane przez | ||
---|---|---|---|
Tworzy wystąpienie klasy SQLStatement. | SQLStatement | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Rejestruje obiekt detektora zdarzeń w obiekcie EventDispatcher, dzięki czemu detektor będzie otrzymywał powiadomienia o zdarzeniu. | EventDispatcher | ||
Anuluje wykonanie tej instrukcji. | SQLStatement | ||
Czyści wszystkie aktualne ustawienia parametrów. | SQLStatement | ||
Wywołuje zdarzenie, tj. kieruje je do przepływu zdarzeń. | EventDispatcher | ||
Wykonuje instrukcję SQL z właściwości text na bazie danych podłączonej do instancji klasy SQLConnection określonej we właściwości sqlConnection. | SQLStatement | ||
Zapewnia dostęp do instancji klasy SQLResult zawierającej wyniki wykonania instrukcji, łącznie z wierszami z instrukcji SELECT oraz innymi informacjami o wykonaniu wszystkich wykonanych instrukcji. | SQLStatement | ||
Sprawdza, czy obiekt EventDispatcher zawiera jakiekolwiek detektory zarejestrowane dla konkretnego typu zdarzeń. | EventDispatcher | ||
Wskazuje, czy dla obiektu zdefiniowano określoną właściwość. | Object | ||
Wskazuje, czy instancja klasy Object należy do łańcucha prototypów obiektu określonego jako parametr. | Object | ||
Pobiera kolejną porcję zestawu wyników instrukcji SELECT. | SQLStatement | ||
Wskazuje, czy określona właściwość istnieje i jest przeliczalna. | Object | ||
Usuwa detektor z obiektu EventDispatcher. | EventDispatcher | ||
Ustawia dostępność właściwości dynamicznej używanej w pętlach. | Object | ||
Zwraca ciąg reprezentujący obiekt — sformatowany zgodnie z konwencjami właściwymi dla ustawień regionalnych. | Object | ||
Zwraca ciąg reprezentujący określony obiekt. | Object | ||
Zwraca pierwotną wartość dla określonego obiektu. | Object | ||
Sprawdza, czy detektor zdarzeń określonego typu jest zarejestrowany w tym obiekcie EventDispatcher lub jego elementach macierzystych. | EventDispatcher |
Zdarzenie | Podsumowanie | Zdefiniowane przez | ||
---|---|---|---|---|
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja środowiska wykonawczego AIR uzyskuje fokus w systemie operacyjnym i przechodzi w stan aktywny. | EventDispatcher | |||
[zdarzenie broadcast] Wywoływane, gdy program Flash Player lub aplikacja AIR traci fokus w systemie operacyjnym i przechodzi w stan nieaktywny. | EventDispatcher | |||
Wywoływane, gdy w czasie wykonywania operacji wystąpi błąd. | SQLStatement | |||
Wywoływane, gdy operacja wywołania metody execute() lub metody next() zakończy się pomyślnie. | SQLStatement |
executing | właściwość |
executing:Boolean
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Wskazuje, czy instrukcja jest w tej chwili wykonywana.
Ta właściwość ma wartość true, jeśli wywołana została metoda execute()
i nie wszystkie wyniki zostały zwrócone z bazy danych.
Implementacja
public function get executing():Boolean
Powiązane elementy interfejsu API
itemClass | właściwość |
itemClass:Class
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Wskazuje klasę (typ danych) używaną dla każdego wiersza zwracanego jako wynik wykonania instrukcji.
Domyślnie każdy wiersz zwrócony za pomocą instrukcji SELECT
jest tworzony jako instancja klasy Object z nazwami kolumn zestawu wyników jako nazwami właściwości instancji oraz wartością każdej kolumny przypisaną odpowiedniej właściwości.
Po określeniu klasy dla właściwości itemClass
każdy wiersz zwrócony za pomocą instrukcji SELECT
wykonanej przez instancję klasy SQLStatement zostanie utworzony jako instancja wyznaczonej klasy. Każdej właściwości instancji klasy itemClass
przypisywana jest wartość z kolumny o tej samej nazwie, co właściwość.
Każda klasa przypisana do tej właściwości musi mieć konstruktor, który nie wymaga parametrów. Ponadto klasa musi mieć po jednej właściwości dla każdej kolumny zwracanej za pomocą instrukcji SELECT
. Sytuacja, w której kolumna listy SELECT
nie ma w klasie itemClass
właściwości odpowiadającej jej nazwie, jest uznawana za błąd.
Implementacja
public function get itemClass():Class
public function set itemClass(value:Class):void
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
itemClass
do automatycznego utworzenia wystąpienia klasy własnej 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()); } } }
parameters | właściwość |
parameters:Object
[tylko do odczytu] Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Pełni funkcję tablicy asocjacyjnej, do której dodaje się wartości parametrów określonych we właściwości text
instrukcji SQL. Klucze tablic są jednocześnie nazwami parametrów. Jeśli w instrukcji zostanie określony parametr bez nazwy, jego kluczem jest indeks parametru.
W instrukcji SQL parametr jest wskazywany za pomocą następujących znaków: "?", ":" lub "@".
Znaki ":" oraz "@" wskazują parametr nazwany, a kolejne znaki następujące po nich oznaczają jego nazwę.
Przykładowo w poniższej instrukcji SQL za pomocą znaku ":" określono parametr o nazwie firstName
:
SELECT FROM employees WHERE firstName = :firstName
Znak "?" wskazuje zaindeksowany (numerowany) parametr; każdemu parametrowi automatycznie przypisywany jest indeks na podstawie kolejność parametrów w instrukcji. Parametry są indeksowane od zera. Inaczej mówiąc, pierwszy parametr ma indeks o wartości 0.
Parametry umożliwiają podstawianie wartości o określonym typie znanych dopiero w czasie wykonywania, ale nieznanych w chwili tworzenia instrukcji SQL. Korzystanie z parametrów jest jedynym sposobem na zagwarantowanie klasy danych wartości przekazywanej do bazy danych. Jeśli parametry nie są stosowane, wszystkie wartości są konwertowane z reprezentacji tekstowej do klasy danych opartej na typie skojarzonym z kolumną. Więcej informacji o klasach danych i powinowactwie kolumn zawiera sekcja „Obsługa typów danych” w dodatku „Obsługa języka SQL w lokalnych bazach danych”.
Parametry są również używane jako środek bezpieczeństwa zapobiegający wykorzystaniu złośliwej techniki znanej jako atak „SQL injection”. W ataku tego rodzaju użytkownik wprowadza kod SQL w miejscu dla niego dostępnym (na przykład w polu wprowadzania danych). Jeśli aplikacja utworzy instrukcję SQL, bezpośrednio dołączając do instrukcji SQL dane wprowadzane przez użytkownika, kod języka SQL wpisany przez użytkownika zostanie wykonany na bazie danych. Poniższy fragment kodu ilustruje przykład dołączania danych wprowadzanych przez użytkownika do instrukcji SQL. Nie należy stosować tej techniki:
// assume the variables "username" and "password" // contain user-entered data var sql:String = "SELECT userId " + "FROM users " + "WHERE username = '" + username + "' " + " AND password = '" + password + "'"; var statement:SQLStatement = new SQLStatement(); statement.text = sql;
Korzystanie z parametrów instrukcji zapobiega atakom bazującym na dodawaniu wartości wprowadzonych przez użytkownika do kodu instrukcji. Wartości parametrów są bowiem wartościami bezpośrednio podstawionymi, a nie stają się częścią samej instrukcji. Poniżej alternatywny do poprzedniej wersji i zalecany fragment kodu:
// assume the variables "username" and "password" // contain user-entered data var sql:String = "SELECT userId " + "FROM users " + "WHERE username = :username " + " AND password = :password"; var statement:SQLStatement = new SQLStatement(); statement.text = sql; // set parameter values statement.parameters[":username"] = username; statement.parameters[":password"] = password;
Wszystkie wartości parametrów należy ustawić zanim instrukcja zostanie wykonana. Wartości parametrów określone w tablicy parameters
są dowiązywane (tj. są dołączane do tekstu instrukcji) w momencie wywoływania metody execute()
. Po wywołaniu metody execute()
kolejne zmiany wartości nie są dokonywane na instrukcji wykonującej. Jednak w kolejnym wywołaniu metody execute()
zostaną użyte zmienione wartości. Jeśli instrukcja zawiera parametr, który nie ma wartości określonej we właściwości parameters
, wystąpi błąd.
Aby usunąć wszystkie, wartości parametrów z właściwości parameters
, należy skorzystać z metody clearParameters()
.
Implementacja
public function get parameters():Object
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
:firstName
w instrukcji SQL.
// employees is a SQLStatement instance employees.text = "SELECT FROM employees WHERE first = :firstName"; employees.parameters[":firstName"] = "Sam"; employees.execute();
// employees is a SQLStatement instance employees.text = "SELECT FROM employees WHERE first = ?"; employees.parameters[0] = "Sam"; employees.execute();
sqlConnection | właściwość |
sqlConnection:SQLConnection
Wersje środowiska wykonawczego: | AIR 1.0 |
Obiekt SQLConnection zarządzający połączeniami z bazami danych, na których wykonywana jest instrukcja.
Implementacja
public function get sqlConnection():SQLConnection
public function set sqlConnection(value:SQLConnection):void
Zgłasza
IllegalOperationError — Gdy nastąpi próba zmiany wartości tej właściwości w trakcie wykonywania instrukcji.
|
text | właściwość |
text:String
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Bieżąca wartość instrukcji SQL.
Wartością instrukcji może być każda wartość obsługiwana przez język SQL. Aby zapoznać się z pełnym opisem dialektu języka SQL obsługiwanego w lokalnych bazach danych, zobacz dodatek „Obsługa języka SQL w lokalnych bazach danych”.
Implementacja
public function get text():String
public function set text(value:String):void
Zgłasza
IllegalOperationError — Gdy nastąpi próba zmiany wartości właściwości text w trakcie wykonywania instrukcji.
|
SQLStatement | () | Konstruktor |
public function SQLStatement()
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Tworzy instancję klasy SQLStatement.
Zgłasza
SecurityError — Jeśli konstruktor jest wywoływany z jakiegokolwiek obszaru izolowanego na zewnątrz obszaru izolowanego głównej aplikacji.
|
cancel | () | metoda |
public function cancel():void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Anuluje wykonanie tej instrukcji. Ta metoda, podobnie jak metodaSQLConnection.cancel()
, pozwala zatrzymać czasochłonne zapytanie lub anulować zapytanie, które nie zostało jeszcze zakończone. Jednak przeciwieństwie do metody SQLConnection.cancel()
, ta metoda pozwala anulować jedynie pojedyncze instrukcje. Jeśli instrukcja nie jest obecnie wykonywana, wywołanie tej metody nie przynosi żadnego skutku.
Żadne zdarzenia nie są wywoływane jako bezpośrednia odpowiedź na zakończenie operacji cancel()
. Jednak po zakończeniu operacji cancel()
i anulowaniu wywołania instrukcji instancja klasy SQLStatement wywoła zdarzenie error
informujące o tym, że wykonanie instrukcji (wywołanie metody execute()
lub metody next()
) nie zostało zakończone. W innym przypadku, jeśli określono wartość parametru responder
wywołania metody execute()
lub next()
, wywołana zostanie określona metoda obsługi błędu. W obu przypadkach instancja klasy SQLError, która jest przekazywana do detektorów, będzie miała właściwość errorID
o wartości 3118 (Operację przerwano).
clearParameters | () | metoda |
execute | () | metoda |
public function execute(prefetch:int = -1, responder:Responder = null):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Wykonuje instrukcję SQL zapisaną we właściwości text
na bazie danych podłączonej do instancji klasy SQLConnection, określonej we właściwości sqlConnection
.
Jeśli argument responder
ma wartość inną niż null
, określona instancja klasy Responder wskazuje metody wywoływane w celu obsługi wyników operacji. Jeśli w trybie wykonywania asynchronicznego argument responder
ma wartość null
, wywoływane jest zdarzenie result
dla operacji zakończonych powodzeniem lub zdarzenie error
dla operacji zakończonych niepowodzeniem.
Aby uzyskać dostęp do wyników instrukcji, takich jak wiersze wyników instrukcji SELECT
lub klucza głównego instrukcji INSERT
(wygenerowanego przez bazę danych), należy wywołać metodę getResult()
. Wyniki są dostępne bezpośrednio po wykonaniu instrukcji w trybie asynchronicznym, a także, gdy zdarzenie result
jest wywoływane w trybie asynchronicznym.
Każda instrukcja musi być przygotowana (skompilowana), zanim zostanie wykonana. Przy pierwszym wywołaniu metody execute()
instancji klasy SQLStatement instrukcja jest przygotowywana w środowisku wykonawczym. Przygotowana instrukcja nie wymaga ponownej kompilacji, o ile nie wprowadzono zmian we właściwości text
. Ustawianie wartości jednego lub wielu parametrów nie powoduje konieczności ponownej kompilacji instrukcji.
Parametry
prefetch:int (default = -1 ) — Jeśli wartością właściwości text jest instrukcja SELECT , wartość ta wskazuje liczbę wierszy jednorazowo zwracanych przez instrukcję. Wartością domyślną jest -1 i wskazuje ona, że wszystkie wiersze wynikowe są zwracane naraz. Zastosowanie tego parametru w połączeniu z metodą next() umożliwia podzielenie dużych zestawów wyników na mniejsze zbiory danych. Może to poprawić subiektywne wrażenia użytkowników co do wydajności aplikacji dzięki szybszemu zwracaniu pierwszych wyników i podzieleniu operacji ich przetwarzania.
Jeśli instrukcją SQL jest zapytanie | |
responder:Responder (default = null ) — Obiekt wyznaczający metody wywoływane w momencie pomyślnego zakończenia operacji lub w przypadku niepowodzenia. Jeśli w asynchronicznym trybie wykonywania argument responder ma wartość null , po zakończeniu wykonania wywoływane jest zdarzenie result lub zdarzenie error .
|
Zdarzenia
result: — Wywoływane, gdy wykonanie instrukcji zakończy się pomyślnie lub gdy zostanie określona wartość argumentu prefetch i instrukcja SELECT zwróci jeden lub więcej wierszy danych.
| |
error: — Wywoływane, gdy w asynchronicznym trybie wykonywania operacja zakończy się niepowodzeniem.
|
Zgłasza
IllegalOperationError — Gdy właściwość text ma wartość null lub zawiera pusty ciąg znaków ("" ); jeśli właściwość sqlConnection nie jest ustawiona; jeśli instancja klasy SQLConnection przypisana do właściwości sqlConnection nie jest podłączona; lub gdy instrukcja jest aktualnie wykonywana.
| |
SQLError — Gdy w synchronicznym trybie wykonywania operacja zakończy się niepowodzeniem.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
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"; var dbFile:File = new File(File.separator + "employee.db"); conn.open(dbFile); } function connOpenHandler(event:SQLEvent):void { dbStatement.addEventListener(SQLEvent.RESULT, resultHandler); dbStatement.addEventListener(SQLErrorEvent.ERROR, errorHandler); dbStatement.execute(); } function resultHandler(event:SQLEvent):void { var result:SQLResult = dbStatement.getResult(); if (result != null) { var numRows:int = result.data.length; for (var i:int = 0; i < numRows; i++) { var row:Object = result.data[i]; trace("id:", row.id, ", name:", row.name, ", ssn:", row.ssn); } } } function errorHandler(event:SQLErrorEvent):void { trace("An error occured while executing the statement."); }
var conn:SQLConnection; var dbStatement:SQLStatement; var employeeResponder:Responder; 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"; var dbFile:File = new File(File.separator + "employee.db"); conn.open(dbFile); } function connOpenHandler(event:SQLEvent):void { employeeResponder = new Responder(resultHandler, errorHandler); dbStatement.execute(-1, employeeResponder); } function resultHandler(result:SQLResult):void { if (result != null) { var numRows:int = result.data.length; for (var i:int = 0; i < numRows; i++) { var row:Object = result.data[i]; trace("id:", row.id, ", name:", row.name, ", ssn:", row.ssn); } } } function errorHandler(error:SQLError):void { trace("An error occured while executing the statement."); }
getResult | () | metoda |
public function getResult():SQLResult
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Zapewnia dostęp do instancji klasy SQLResult zawierającej wyniki wykonania instrukcji, łącznie z wierszami wynikowymi z instrukcji SELECT
oraz pozostałymi informacjami o wykonaniu wszystkich wykonanych instrukcji. W asynchronicznym trybie wykonywania informacja o wyniku jest niedostępna do momentu wywołania zdarzenia result
.
Jeśli w czasie wykonywania instrukcji SELECT
wywołana zostanie metoda execute()
z domyślnym argumentem prefetch
równym -1, zwrócona instancja klasy SQLResult będzie zawierała cały zestaw wyników zapytania.
Jeśli argument prefetch
został określony dla wywołania metod execute()
lub next()
, metoda getResult()
działa jak kolejka FIFO (pierwszy na wejściu — pierwszy na wyjściu) z wynikami. Za każdym razem, kiedy wywoływane jest zdarzenie result
, do kolejki dodawana jest nowa instancja klasy SQLResult. Za każdym razem kiedy wywoływana jest metoda getResult()
, pierwsza instancja klasy SQLResult (ta, która jako pierwsza została dodana do kolejki) jest zwracana i usuwana z kolejki. Jeśli już żadna instancja klasy SQLResult nie pozostanie w kolejce, metoda getResult()
zwraca wartość null
.
Należy zauważyć, że instancje klasy SQLResult pozostają w kolejce, dopóki są usuwane za pomocą metody getResult()
. Przykładowo, jeśli metoda execute()
jest wywoływana wielokrotnie bez wywoływania metody getResult()
, instancje klasy SQLResult skojarzone z każdym wywołaniem metody execute()
pozostają w kolejce.
SQLResult — Instancja klasy SQLResult zawiera wynik wywołania metody execute() lub next() .
|
Powiązane elementy interfejsu API
next | () | metoda |
public function next(prefetch:int = -1, responder:Responder = null):void
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Pobiera kolejną porcję zestawu wyników instrukcji SELECT
. Jeśli w zestawie wyników nie ma więcej wierszy, wywoływane jest zdarzenie result
, lecz do kolejki getResult()
nie jest dodawany kolejny obiekt SQLResult.
Jeśli w asynchronicznym trybie wykonywania argument responder
ma wartość inną niż null
, określona instancja klasy Responder wskazuje metody wywoływane w celu obsługi wyników operacji. Jeśli argument responder
ma wartość null
, wywoływane jest zdarzenie result
dla operacji zakończonych powodzeniem lub zdarzenie error
dla operacji zakończonych niepowodzeniem.
Ta metoda może być wywoływana jedynie wtedy, gdy instrukcja jest wciąż wykonywana. Jeśli instrukcją jest zapytanie SELECT
, a określona wartość argumentu prefetch
jest większa niż zero, instrukcja będzie wykonywana, dopóki cały zestaw wyników nie zostanie zwrócony lub do momentu wywołania metody SQLStatement.cancel()
lub metody SQLConnection.cancel()
.
Parametry
prefetch:int (default = -1 ) — Jeśli wartością właściwości text jest instrukcja SELECT , wartość ta wskazuje liczbę wierszy jednorazowo zwracanych przez instrukcję. Wartością domyślną jest -1 i wskazuje ona, że wszystkie wiersze wynikowe są zwracane naraz. Może to poprawić subiektywne wrażenia użytkowników co do wydajności aplikacji dzięki szybszemu zwracaniu pierwszych wyników i podzieleniu operacji ich przetwarzania.
| |
responder:Responder (default = null ) — Obiekt wyznaczający metody wywoływane w momencie pomyślnego zakończenia operacji lub w przypadku niepowodzenia. Jeśli argument responder ma wartość null , po zakończeniu wykonania wywoływane jest zdarzenie result lub zdarzenie error .
|
Zdarzenia
result: — Wywoływane, gdy wykonanie instrukcji zakończy się pomyślnie lub gdy wartość argumentu prefetch zostanie określona i metoda next() zwróci jeden lub więcej wierszy danych.
| |
error: — Wywoływane, gdy w asynchronicznym trybie wykonywania operacja zakończy się niepowodzeniem.
|
Zgłasza
IllegalOperationError — Gdy w momencie wywołania metody instrukcja nie jest wykonywana (właściwość executing ma wartość false ).
| |
SQLError — Gdy w synchronicznym trybie wykonywania operacja zakończy się niepowodzeniem.
|
Powiązane elementy interfejsu API
Przykład ( Sposób korzystania z tego przykładu )
complete
obiektu SQLResult i jeśli nie wszystkie wiersze zostały pobrane, wywoływana jest metoda next()
.
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"; var dbFile:File = new File(File.separator + "employee.db"); conn.open(dbFile); } function connOpenHandler(event:SQLEvent):void { dbStatement.addEventListener(SQLEvent.RESULT, resultHandler); dbStatement.addEventListener(SQLErrorEvent.ERROR, errorHandler); dbStatement.execute(10); } function resultHandler(event:SQLEvent):void { var result:SQLResult = dbStatement.getResult(); if (result != null) { var numRows:int = result.data.length; for (var i:int = 0; i < numRows; i++) { var row:Object = result.data[i]; trace("id:", row.id, ", name:", row.name, ", ssn:", row.ssn); } if (!result.complete) { dbStatement.next(10); } } } function errorHandler(event:SQLErrorEvent):void { trace("An error occured while executing the statement."); }
error | Zdarzenie |
flash.events.SQLErrorEvent
właściwość SQLErrorEvent.type =
flash.events.SQLErrorEvent.ERROR
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Wywoływane, gdy w czasie wykonywania operacji wystąpi błąd.
StałaSQLErrorEvent.ERROR
definiuje wartość właściwości type
zdarzenia error wywoływanego, gdy wywołanie metody instancji klasy SQLConnection lub SQLStatement zakończy się z błędem. Zdarzenie error
ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
error | Obiekt SQLError zawierający informacje o typie błędu, jaki wystąpił, oraz o operacji, która spowodowała błąd. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt SQLConnection lub SQLStatement zgłaszający błąd. |
Powiązane elementy interfejsu API
result | Zdarzenie |
flash.events.SQLEvent
właściwość SQLEvent.type =
flash.events.SQLEvent.RESULT
Wersja języka: | ActionScript 3.0 |
Wersje środowiska wykonawczego: | AIR 1.0 |
Wywoływane, gdy operacja wywołania metody execute()
lub next()
zakończy się pomyślnie. Po wywołaniu zdarzenia result
istnieje możliwość pobrania wyników instrukcji za pomocą wywołania metody getResult()
.
SQLEvent.RESULT
definiuje wartość właściwości type
obiektu zdarzenia result
. Wywoływane po pomyślnym zakończeniu wywołania metody SQLStatement.execute()
lub SQLStatement.next()
. Po wywołaniu zdarzenia SQLEvent.RESULT
można wywołać metodę SQLStatement.getResult()
w celu uzyskania dostępu do danych wynikowych. Zdarzenie result
ma następujące właściwości:
Właściwość | Wartość |
---|---|
bubbles | false |
cancelable | false ; nie ma domyślnego zachowania, które można byłoby anulować. |
currentTarget | Obiekt przetwarzający aktywnie obiekt Event za pomocą detektora zdarzeń. |
target | Obiekt SQLStatement, który wykonał operację. |
Powiązane elementy interfejsu API
Tue Jun 12 2018, 12:06 PM Z