Pakket | flash.data |
Klasse | public class SQLStatement |
Overerving | SQLStatement EventDispatcher Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Een SQLStatement-instantie wordt gekoppeld aan een SQLConnection-instantie door de SQLConnection-instantie in te stellen als de waarde van de eigenschap sqlConnection
van de SQLStatement-instantie. De eigenschap text
wordt gevuld met de daadwerkelijke tekst van de SQL-instructie die moet worden uitgevoerd. Zo nodig worden parameterwaarden voor de SQL-instructies opgegeven met behulp van de eigenschap parameters
en de instructie wordt uitgevoerd door de methode execute()
aan te roepen.
Zie de bijlage SQL-ondersteuning in lokale databases voor een volledige beschrijving van het SQL-dialect dat wordt ondersteund door lokale SQL-databases.
In de asynchrone uitvoeringsmodus worden de methoden execute()
en next()
uitgevoerd op de achtergrond en verzendt de runtime gebeurtenissen naar geregistreerde gebeurtenislisteners of naar een opgegeven Responder-instantie wanneer de bewerkingen voltooid zijn of mislukken. In de synchrone modus worden de methoden uitgevoerd in de hoofdtoepassingsthread, wat betekent dat er geen andere code wordt uitgevoerd totdat de databasebewerkingen zijn voltooid. Als de methoden mislukken in de synchrone modus, genereert de runtime bovendien een uitzondering in plaats van een foutgebeurtenis te verzenden.
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
executing : Boolean [alleen-lezen]
Geeft aan of de instructie momenteel wordt uitgevoerd. | SQLStatement | ||
itemClass : Class
Geeft een klasse (gegevenstype) aan die wordt gebruikt voor elke rij die wordt geretourneerd als resultaat van de uitvoering van de instructie. | SQLStatement | ||
parameters : Object [alleen-lezen]
Fungeert als een associatieve array waaraan u waarden toevoegt voor de parameters die zijn opgegeven in de eigenschap text van de SQL-instructie. | SQLStatement | ||
sqlConnection : SQLConnection
Het object SQLConnection dat de verbinding beheert met de database(s) waarmee de instructie wordt uitgevoerd. | SQLStatement | ||
text : String
De daadwerkelijke SQL-tekst van de instructie. | SQLStatement |
Methode | Gedefinieerd door | ||
---|---|---|---|
Creëert een SQLStatement-instantie. | SQLStatement | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registreert een gebeurtenislistenerobject bij een object EventDispatcher, zodat de listener een melding van een gebeurtenis ontvangt. | EventDispatcher | ||
Annuleert de uitvoering van deze instructie. | SQLStatement | ||
Wist alle huidige parameterinstellingen. | SQLStatement | ||
Verzendt een gebeurtenis naar de gebeurtenisstroom. | EventDispatcher | ||
Voert de SQL in de eigenschap text uit met de database die is verbonden aan het object SQLConnection in de eigenschap sqlConnection. | SQLStatement | ||
Biedt toegang tot een SQLResult-object dat het resultaat bevat van de uitvoering van de instructie, met inbegrip van eventuele resultaatrijen van een SELECT-instructie, en andere informatie over de uitvoering van de instructie voor alle uitgevoerde instructies. | SQLStatement | ||
Controleert of het object EventDispatcher listeners heeft geregistreerd voor een specifiek type gebeurtenis. | EventDispatcher | ||
Geeft aan of voor een object een opgegeven eigenschap is gedefinieerd. | Object | ||
Geeft aan of een instantie van de klasse Object zich in de prototypeketen van het object bevindt dat als parameter is opgegeven. | Object | ||
Haalt het volgende gedeelte van de resultaatset van een SELECT-instructie op. | SQLStatement | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
Verwijdert een listener uit het object EventDispatcher. | EventDispatcher | ||
Stelt de beschikbaarheid van een dynamische eigenschap voor lusbewerkingen in. | Object | ||
Geeft de tekenreeksweergave van dit object weer, geformatteerd volgens de locatiespecifieke conventies. | Object | ||
Retourneert een tekenreeksrepresentatie van het opgegeven object. | Object | ||
Retourneert de primitieve waarde van het opgegeven object. | Object | ||
Controleert of een gebeurtenislistener is geregistreerd bij dit object EventDispatcher of een van de voorouders voor het opgegeven type gebeurtenis. | EventDispatcher |
Gebeurtenis | Overzicht | Gedefinieerd door | ||
---|---|---|---|---|
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de besturingssysteemfocus krijgt en actief wordt. | EventDispatcher | |||
[uitgezonden gebeurtenis] Wordt verzonden wanneer Flash Player of de AIR-toepassing de systeemfocus verliest en inactief wordt. | EventDispatcher | |||
Wordt verzonden als er een fout optreedt tijdens een bewerking. | SQLStatement | |||
Wordt verzonden als de aanroep van de methode execute() of next() correct is voltooid. | SQLStatement |
executing | eigenschap |
executing:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Geeft aan of de instructie momenteel wordt uitgevoerd.
Deze eigenschap is waar (true) als execute()
is aangeroepen en niet alle resultaten zijn geretourneerd uit de database.
Implementatie
public function get executing():Boolean
Verwante API-elementen
itemClass | eigenschap |
itemClass:Class
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Geeft een klasse (gegevenstype) aan die wordt gebruikt voor elke rij die wordt geretourneerd als resultaat van de uitvoering van de instructie.
Standaard wordt elke rij die wordt geretourneerd door de instructie SELECT
, gemaakt als een Object-instantie, waarbij de kolomnamen van de resultaatset worden gebruikt voor de namen van de eigenschappen van het object en de waarde van elke kolom de waarde van de desbetreffende eigenschap is.
Als er een klasse wordt opgegeven voor de eigenschap itemClass
, wordt elke rij die wordt geretourneerd door een SELECT
-instructie die is uitgevoerd door deze SQLStatement-instantie, gemaakt als een instantie van de opgegeven klasse. Aan elke eigenschap van de itemClass
-instantie wordt de waarde toegewezen uit de kolom met dezelfde naam als de eigenschap.
Elke klasse die aan deze eigenschap is toegewezen, moet een constructor hebben die geen parameters vereist. Daarnaast moet de klasse één eigenschap hebben voor elke kolom die wordt geretourneerd door de instructie SELECT
. Als een kolom in de lijst SELECT
geen bijbehorende eigenschapnaam uit de klasse itemClass
heeft, wordt dit als een fout beschouwd.
Implementatie
public function get itemClass():Class
public function set itemClass(value:Class):void
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
itemClass
kan worden gebruikt om te zorgen dat de runtime instanties van een aangepaste klasse maakt op basis van de resultaten van de SQL-instructie 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 | eigenschap |
parameters:Object
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Fungeert als een associatieve array waaraan u waarden toevoegt voor de parameters die zijn opgegeven in de eigenschap text
van de SQL-instructie. De arraysleutels zijn de namen van de parameters. Als een naamloze parameter is opgegeven in de tekst van de instructie, is de sleutel de index van de parameter.
In de tekst van een SQL-instructie wordt een parameter aangeduid met een van de volgende tekens: ?, : of @.
De tekens : en @ geven een benoemde parameter aan. De tekens na dit teken vormen de naam van de parameter.
In de volgende SQL-instructie wordt bijvoorbeeld een parameter genaamd firstName
aangegeven met het teken : (dubbele punt):
SELECT FROM employees WHERE firstName = :firstName
Het teken ? geeft een geïndexeerde (genummerde) parameter aan. Elke parameter krijgt automatisch een index op basis van de volgorde van de parameters in de tekst van de instructie. Indexwaarden van parameters zijn gebaseerd op nul. Met andere woorden: de index van de eerste parameter is 0.
Parameters worden gebruikt om het mogelijk te maken ingevoerde waarden te gebruiken voor waarden die onbekend zijn op het moment dat de SQL-instructie wordt samengesteld. Het gebruik van parameters vormt de enige manier om de opslagklasse te garanderen voor een waarde die is doorgegeven aan de database. Als geen parameters worden gebruikt, worden alle waarden omgezet van tekst in een opslagklasse die is gebaseerd op de type-affiniteit van de bijbehorende kolom. Zie het gedeelte Ondersteuning van gegevenstypen in de bijlage SQL-ondersteuning in lokale databases voor meer informatie over opslagklassen en kolomaffiniteit.
Parameters worden ook gebruikt als veiligheidsmaatregel om een kwaadaardige techniek, SQL-injectie-aanval genoemd, te voorkomen. Bij een SQL-injectie-aanval voert een gebruiker SQL-code in op een locatie die voor gebruikers toegankelijk is (zoals een veld voor gegevensinvoer). Als de toepassingscode een SQL-instructie samenstelt door gebruikersinvoer direct in de SQL-tekst te plaatsen, wordt de door de gebruiker ingevoerde SQL-code direct uitgevoerd met de database. Hieronder ziet u een voorbeeld van het plaatsen van gebruikersinvoer in SQL-tekst. U mag deze techniek niet gebruiken:
// 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;
Als u instructieparameters gebruikt in plaats van door de gebruiker ingevoerde waarden in de tekst van een instructie te plaatsen, voorkomt u een SQL-injectie-aanval omdat de parameterwaarden expliciet worden behandeld als vervangen waarden in plaats van deel uit te maken van de letterlijke tekst van de instructie. Hieronder ziet u het aanbevolen alternatief voor de bovenstaande code:
// 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;
Alle parameterwaarden moeten worden ingesteld voordat de instructie wordt uitgevoerd. Parameterwaarden die zijn opgegeven in de array parameters
, worden gebonden (dat wil zeggen: gecombineerd met de tekst van de instructie) wanneer de methode execute()
wordt aangeroepen. Nadat execute()
is aangeroepen, worden eventuele eropvolgende wijzigingen in de waarden niet toegepast op de instructie die wordt uitgevoerd. Bij een volgende aanroep van execute()
, worden echter de gewijzigde waarden gebruikt. Als de instructietekst een parameter bevat waarvoor geen waarde is opgegeven in de eigenschap parameters
, treedt er een fout op.
U gebruikt de methode clearParameters()
om alle parameterwaarden uit de eigenschap parameters
te verwijderen.
Implementatie
public function get parameters():Object
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
:firstName
, in een SQL-instructie.
// 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 | eigenschap |
sqlConnection:SQLConnection
Runtimeversies: | AIR 1.0 |
Het object SQLConnection dat de verbinding beheert met de database(s) waarmee de instructie wordt uitgevoerd.
Implementatie
public function get sqlConnection():SQLConnection
public function set sqlConnection(value:SQLConnection):void
Gegenereerde uitzondering
IllegalOperationError — Als wordt geprobeerd de waarde van deze eigenschap te wijzigen terwijl de instructie wordt uitgevoerd.
|
text | eigenschap |
text:String
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
De daadwerkelijke SQL-tekst van de instructie.
De tekst kan elke ondersteunde SQL-instructie zijn. Zie de bijlage SQL-ondersteuning in lokale databases voor een volledige beschrijving van het SQL-dialect dat wordt ondersteund door lokale SQL-databases.
Implementatie
public function get text():String
public function set text(value:String):void
Gegenereerde uitzondering
IllegalOperationError — Als wordt geprobeerd de eigenschap text te wijzigen terwijl de instructie wordt uitgevoerd.
|
SQLStatement | () | Constructor |
public function SQLStatement()
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Creëert een SQLStatement-instantie.
Gegenereerde uitzondering
SecurityError — Als de constructor wordt aangeroepen vanuit een sandbox buiten de hoofdsandbox van de toepassing.
|
cancel | () | methode |
public function cancel():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Annuleert de uitvoering van deze instructie. Net als SQLConnection.cancel()
wordt deze methode gebruikt om een langdurige query te stoppen of een query die nog niet is voltooid te annuleren. In tegenstelling tot SQLConnection.cancel()
annuleert deze methode echter alleen deze instructie. Als de instructie momenteel niet wordt uitgevoerd, gebeurt er niets wanneer de methode wordt aangeroepen.
Er worden geen gebeurtenissen verzonden als directe reactie op de voltooiing van de bewerking cancel()
. Nadat de bewerking cancel()
is voltooid en de uitvoering van de instructie is geannuleerd, verzendt de SQLStatement-instantie echter de gebeurtenis error
om aan te geven dat de uitvoering van de instructie (aanroep van execute()
of next()
) niet is voltooid. Als er echter een waarde is opgegeven voor de parameter responder
van de aanroep van execute()
of next()
, wordt de opgegeven methode voor foutafhandeling aangeroepen. In beide gevallen heeft de SQLError-instantie die aan de listeners is doorgegeven, een errorID
-eigenschap met de waarde 3118 (Bewerking afgebroken).
clearParameters | () | methode |
public function clearParameters():void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Wist alle huidige parameterinstellingen.
Verwante API-elementen
execute | () | methode |
public function execute(prefetch:int = -1, responder:Responder = null):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Voert de SQL in de eigenschap text
uit met de database die is verbonden aan het object SQLConnection in de eigenschap sqlConnection
.
Als het argument responder
niet null
is, geeft het opgegeven Responder-object de methoden aan die worden aangeroepen om het resultaat van de bewerking af te handelen. Als in de asynchrone uitvoeringsmodus het argument responder
null
is, wordt de gebeurtenis result
verzonden als de bewerking is geslaagd, terwijl de gebeurtenis error
wordt verzonden als de bewerking is mislukt.
Als u toegang wilt krijgen tot de resultaten van een instructie, zoals de resultaatrijen van een instructie SELECT
of de door de database gegenereerde primaire sleutel van een instructie INSERT
, roept u de methode getResult()
aan. De resultaten zijn onmiddellijk beschikbaar nadat de instructie wordt uitgevoerd in de synchrone modus en wanneer de gebeurtenis result
wordt verzonden in de asynchrone modus.
Elke instructie moet worden voorbereid (gecompileerd) voordat deze kan worden uitgevoerd. De eerste keer dat de methode execute()
van een SQLStatement-instantie wordt aangeroepen, wordt de instructie voorbereid door de runtime. Nadat een instructie is voorbereid, hoeft deze niet opnieuw te worden voorbereid, tenzij de eigenschap text
verandert. Als een of meer parameterwaarden worden ingesteld, hoeft de instructie niet opnieuw te worden voorbereid.
Parameters
prefetch:int (default = -1 ) — Als de eigenschap text van de instructie een SELECT -instructie is, geeft deze waarde aan hoe veel rijen tegelijk door de instructie worden geretourneerd. De standaardwaarde is -1 en geeft aan dat alle resulterende rijen tegelijk worden geretourneerd. Deze parameter wordt gebruikt in combinatie met de methode next() om grote resultaatsets te splitsen in kleinere gegevenssets. Hierdoor nemen de prestaties van de toepassing voor de gebruikers ogenschijnlijk toe doordat de eerste resultaten sneller worden geretourneerd en bewerkingen die het resultaat verwerken, worden opgesplitst.
Als de SQL-instructie een | |
responder:Responder (default = null ) — Een object dat methoden aangeeft die moeten worden aangeroepen wanneer de bewerking slaagt of mislukt. Als in de asynchrone uitvoeringsmodus het argument responder null is, wordt de gebeurtenis result of error verzonden wanneer de uitvoering is voltooid.
|
Gebeurtenissen
result: — Wordt verzonden wanneer de uitvoering van de instructie is voltooid of wanneer een waarde is opgegeven voor het argument prefetch en een SELECT- instructie een of meer rijen met gegevens retourneert.
| |
error: — Wordt verzonden als de bewerking mislukt in de asynchrone uitvoeringsmodus.
|
Gegenereerde uitzondering
IllegalOperationError — Als de eigenschap text null is of een lege tekenreeks bevat ("" ); als de eigenschap sqlConnection niet is ingesteld; als de SQLConnection-instantie die is toegewezen aan de eigenschap sqlConnection niet is verbonden of als de instructie op dat moment wordt uitgevoerd.
| |
SQLError — Als de bewerking in synchrone uitvoeringsmodus mislukt.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
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 | () | methode |
public function getResult():SQLResult
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Biedt toegang tot een SQLResult-object dat het resultaat bevat van de uitvoering van de instructie, met inbegrip van eventuele resultaatrijen van een SELECT
-instructie, en andere informatie over de uitvoering van de instructie voor alle uitgevoerde instructies. In de asynchrone uitvoeringsmodus is de informatie over het resultaat pas beschikbaar nadat de gebeurtenis result
is verzonden.
Als een SELECT
-instructie wordt uitgevoerd, waarbij de methode execute()
wordt aangeroepen met de standaardwaarde -1 voor het argument prefetch
, bevat het geretourneerde SQLResult-object de gehele resultaatset van de query.
Als het argument prefetch
wordt opgegeven voor een aanroep van de methode execute()
of next()
, werkt de methode getResult()
als een 'eerst-in, eerst-uit' (FIFO) wachtrij met resultaten. Telkens wanneer de gebeurtenis result
wordt verzonden, wordt een nieuw SQLResult-object aan de wachtrij toegevoegd. Telkens wanneer de methode getResult()
wordt aangeroepen, wordt het oudste SQLResult-object (het object dat als eerste aan de wachtrij is toegevoegd) geretourneerd en uit de wachtrij verwijderd. Wanneer de wachtrij geen SQLResult-objecten meer bevat, retourneert getResult()
null
.
Let erop dat SQLResult-objecten in de wachtrij blijven staan, tenzij ze worden verwijderd doordat getResult()
wordt aangeroepen. Als de methode execute()
bijvoorbeeld meerdere malen wordt aangeroepen zonder dat getResult()
wordt aangeroepen, blijven de SQLResult-objecten die zijn gekoppeld aan elke execute()
-aanroep in de wachtrij.
SQLResult — Een SQLResult-object dat het resultaat bevat van een aanroep van de methode execute() of next() .
|
Verwante API-elementen
next | () | methode |
public function next(prefetch:int = -1, responder:Responder = null):void
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Haalt het volgende gedeelte van de resultaatset van een SELECT
-instructie op. Als de resultaatset geen rijen meer bevat, wordt de gebeurtenis result
verzonden, maar wordt er geen SQLResult-object toegevoegd aan de wachtrij van getResult()
.
Als in asynchrone uitvoeringsmodus het argument responder
niet null
is, geeft het opgegeven Responder-object de methoden aan die worden aangeroepen om de resultaten van de bewerking af te handelen. Als het argument responder
null
is, wordt de gebeurtenis result
verzonden als de bewerking is geslaagd, terwijl de gebeurtenis error
wordt verzonden als de bewerking is mislukt.
Deze methode kan alleen worden aangeroepen terwijl de instructie wordt uitgevoerd. Wanneer de instructie een SELECT
-query is en een waarde groter dan nul is opgegeven voor het argument prefetch
, wordt de instructie uitgevoerd totdat de gehele resultaatset wordt geretourneerd of de methode SQLStatement.cancel()
of SQLConnection.cancel()
wordt aangeroepen.
Parameters
prefetch:int (default = -1 ) — Als de eigenschap text van de instructie een SELECT -instructie is, geeft deze waarde aan hoe veel rijen tegelijk door de instructie worden geretourneerd. De standaardwaarde is -1 en geeft aan dat alle resulterende rijen tegelijk worden geretourneerd. Hierdoor nemen de prestaties van de toepassing voor de gebruikers ogenschijnlijk toe doordat de eerste resultaten sneller worden geretourneerd en bewerkingen die het resultaat verwerken, worden opgesplitst.
| |
responder:Responder (default = null ) — Een object dat methoden aangeeft die moeten worden aangeroepen wanneer de bewerking slaagt of mislukt. Als het argument responder null is, wordt de gebeurtenis result of error verzonden wanneer de uitvoering is voltooid.
|
Gebeurtenissen
result: — Wordt verzonden wanneer de uitvoering van de instructie correct is voltooid of wanneer een waarde is opgegeven voor het argument prefetch en een aanroep van next() een of meer rijen met gegevens retourneert.
| |
error: — Wordt verzonden als de bewerking mislukt in de asynchrone uitvoeringsmodus.
|
Gegenereerde uitzondering
IllegalOperationError — Wanneer de methode wordt aangeroepen terwijl de instructie momenteel niet wordt uitgevoerd (de eigenschap executing is false ).
| |
SQLError — Als de bewerking in synchrone uitvoeringsmodus mislukt.
|
Verwante API-elementen
Voorbeeld ( Hoe dit voorbeeld te gebruiken )
complete
van SQLResult en roept de methode next()
aan als niet alle rijen zijn opgehaald.
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 | Gebeurtenis |
flash.events.SQLErrorEvent
eigenschap SQLErrorEvent.type =
flash.events.SQLErrorEvent.ERROR
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Wordt verzonden als er een fout optreedt tijdens een bewerking.
De constanteSQLErrorEvent.ERROR
definieert de waarde van de eigenschap type
van een foutgebeurtenis die is verzonden wanneer een aanroep naar een methode van een SQLConnection- of SQLStatement-instantie een fout oplevert. De error
-gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
error | Een SQLError-object dat informatie bevat over het type fout dat is opgetreden en de bewerking die de fout heeft veroorzaakt. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het SQLConnection- of SQLStatement-object dat de fout rapporteert. |
Verwante API-elementen
result | Gebeurtenis |
flash.events.SQLEvent
eigenschap SQLEvent.type =
flash.events.SQLEvent.RESULT
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Wordt verzonden als de aanroep van de methode
execute() of next()
correct is voltooid. Nadat de gebeurtenis result
is verzonden, kan de methode getResult()
worden aangeroepen om het resultaat van de instructie op te halen.
SQLEvent.RESULT
definieert de waarde van de eigenschap type
van een result
-gebeurtenisobject. Wordt verzonden wanneer de methode SQLStatement.execute()
of SQLStatement.next()
met succes is voltooid. Wanneer de SQLEvent.RESULT
-gebeurtenis is verzonden, kan de methode SQLStatement.getResult()
worden aangeroepen om toegang te krijgen tot de resultaatgegevens. De result
-gebeurtenis heeft de volgende eigenschappen:
Eigenschap | Waarde |
---|---|
bubbles | false |
cancelable | false ; er is geen standaardgedrag om te annuleren. |
currentTarget | Het object dat het gebeurtenisobject actief verwerkt met een gebeurtenislistener. |
target | Het SQLStatement-object dat de bewerking heeft uitgevoerd. |
Verwante API-elementen
Wed Jun 13 2018, 11:42 AM Z