Pakket | flash.data |
Klasse | public class SQLResult |
Overerving | SQLResult Object |
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
De SQLResult-instantie voor een SQL-instructie is toegankelijk via een aanroep van de methode SQLStatement.getResult()
of als een argument dat wordt doorgegeven aan de resultaathandler van een Responder-instantie die is opgegeven in een aanroep van SQLStatement.execute()
of SQLStatement.next()
. SQLResult-instanties worden gewoonlijk niet rechtstreeks in de ontwikkelcode samengesteld.
U gebruikt een SQLResult-object om toegang te krijgen tot de gegevensrijen die worden geretourneerd door een SELECT
-instructie (via de eigenschap data
) om identificatiegegevens voor een rij op te halen voor een INSERT
-instructie (via de eigenschap lastInsertRowID
), om het aantal rijen te bepalen waarop de instructie INSERT
, UPDATE
of DELETE
van toepassing is (via de eigenschap rowsAffected
) of om te bepalen of er aanvullende SELECT
-resultaatrijen zijn die niet zijn opgehaald (via de eigenschap complete
).
Verwante API-elementen
Eigenschap | Gedefinieerd door | ||
---|---|---|---|
complete : Boolean [alleen-lezen]
Geeft aan of alle resulterende gegevens van een uitgevoerde instructie zijn geretourneerd. | SQLResult | ||
constructor : Object
Verwijzing naar het klasseobject of de constructorfunctie van een bepaalde objectinstantie. | Object | ||
data : Array [alleen-lezen]
De gegevens die worden geretourneerd als resultaat van de uitvoering van de instructie, met name als de SQL-instructie SELECT wordt uitgevoerd. | SQLResult | ||
lastInsertRowID : Number [alleen-lezen]
De laatste rij-id die is gegenereerd door de SQL-instructie INSERT. | SQLResult | ||
rowsAffected : Number [alleen-lezen]
Geeft aan op hoeveel rijen de bewerking van toepassing was. | SQLResult |
Methode | Gedefinieerd door | ||
---|---|---|---|
Creëert een SQLResult-instantie. | SQLResult | ||
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 | ||
Geeft aan of de opgegeven eigenschap bestaat en kan worden opgesomd. | Object | ||
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 |
complete | eigenschap |
complete:Boolean
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Geeft aan of alle resulterende gegevens van een uitgevoerde instructie zijn geretourneerd.
Als een instructie een of meer rijen retourneert, geeft deze eigenschap aan of alle rijen zijn geretourneerd. Als de methode execute()
van een SQLStatement-object wordt aangeroepen met een waarde voor het argument prefetch
, wordt alleen het opgegeven aantal rijen van de resulterende gegevens geretourneerd in de eigenschap data
van het SQLResult-object. Eropvolgende aanroepen van SQLStatement.next()
zorgen ervoor dat aanvullende gegevens beschikbaar komen. Deze eigenschap wordt gebruikt om te bepalen wanneer het eindresultaat is geretourneerd.
Aangezien het aantal rijen tijdens de uitvoering onbekend is, moet de databasecursor voorbij de laatste rij worden verplaatst voordat de uitvoering van de instructie als voltooid wordt beschouwd. Wanneer de methode SQLStatement.execute()
wordt aangeroepen met het argument prefetch
, moet ten minste één rij meer dan het totale aantal rijen in de resultaatset worden opgevraagd voordat de eigenschap complete
van de resulterende SQLResult-instantie true
is.
Implementatie
public function get complete():Boolean
Verwante API-elementen
data | eigenschap |
data:Array
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
De gegevens die worden geretourneerd als resultaat van de uitvoering van de instructie, met name als de SQL-instructie SELECT
wordt uitgevoerd.
Als een instructie een of meer rijen retourneert, is deze eigenschap een array die objecten bevat die de rijen van resultaatgegevens vertegenwoordigt. Elk object in de array heeft eigenschapnamen die overeenkomen met de kolomnamen van de set met resultaatgegevens.
Stel bijvoorbeeld dat u de volgende SQL-instructie SELECT
uitvoert:
SELECT lastName, firstName FROM employees
We veronderstellen dat de tabelemployees
10 rijen bevat en de eigenschap SQLResult.data
een array met 10 elementen is. Elk element is een object met twee eigenschappen: lastName
en firstName
.
De situatie wordt complexer wanneer u een SELECT
-instructie gebruikt met een complexe resultaatkolom, zoals een aggregaatfunctie. Stel bijvoorbeeld dat u de volgende SQL uitvoert:
SELECT departmentId, SUM(salary) FROM employees GROUP BY departmentId
In de resultaten van deze instructie heeft elk object in de array data
twee eigenschappen: departmentId
en SUM(salary)
. SUM(salary) is echter geen geldige id. Als u een berekende kolom gebruikt zoals een aggregaat- of andere functie, moet u een alias voor de berekende kolom in uw SQL-instructie opgeven. De alias wordt gebruikt als eigenschapsnaam in de resultaatgegevensobjecten. Stel dat u dit alternatief gebruikt voor de vorige instructie:
SELECT departmentId, SUM(salary) AS salarySubtotal FROM employees GROUP BY departmentId
In de array data
van deze instructie, hebben de resultaatobjecten twee eigenschappen: departmentId
en salarySubtotal
.
De eigenschap data
is altijd een array, ongeacht het aantal rijen en kolommen in de set resultaten. De volgende SELECT
-instructie bijvoorbeeld resulteert in één rij en één kolom. Dit is in wezen één waarde:
SELECT COUNT(*) AS numEmployees FROM employees
Nadat de query is uitgevoerd, bevat de eigenschap data
een Array-object met één element. Dit element is een object met één eigenschap: numEmployees
.
Als de resultaatgegevens duplicaatkolomnamen bevatten, bijvoorbeeld de SELECT
-instructie bevat twee verschillende id
-kolommen, worden aan de duplicaatnamen eigenschapsnamen gegeven die in overeenstemming zijn met de waarde van de eigenschap SQLConnection.columnNameStyle
. Standaard wordt elke naam van een kolom gebruikt als eigenschapsnaam, maar als meerdere kolommen in de set met resultaten dezelfde naam hebben, wordt de lange naamnotatie [table-name]_[column-name]
gebruikt voor de kolommen met identieke namen. Dit gedrag kan worden gewijzigd door de eigenschap SQLConnection.columnNameStyle
in te stellen.
Standaard zijn de objecten in de array data
Object-instanties. Als u echter de waarde van de eigenschap SQLStatement.itemClass
instelt op een klasse, worden in plaats daarvan de elementen van de array data
gemaakt als instanties van die klasse. Voor elke kolom in de set met resultaatgegevens moet de klasse itemClass
een eigenschap hebben waarvan de naam overeenstemt met de kolomnaam.
Als een instructie geen gegevens retourneert, is deze eigenschap null
. Dit is het geval als de instructie geen SELECT
-instructie is of als de instructie een SELECT
-instructie is die 0 rijen retourneert.
Implementatie
public function get data():Array
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()); } } }
lastInsertRowID | eigenschap |
lastInsertRowID:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
De laatste rij-id die is gegenereerd door de SQL-instructie INSERT
.
De waarde is 0 als de uitgevoerde instructie geen INSERT
-instructie was.
Een rij-id wordt gebruikt als unieke identificatie voor een rij in een tabel in de database. De waarde wordt meestal gegenereerd door de database.
Zie de gedeelten CREATE TABLE en Expressies in de bijlage SQL-ondersteuning in lokale databases voor meer informatie over primaire sleutels en gegenereerde rij-id's.
Implementatie
public function get lastInsertRowID():Number
Verwante API-elementen
rowsAffected | eigenschap |
rowsAffected:Number
[alleen-lezen] Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Geeft aan op hoeveel rijen de bewerking van toepassing was. Alleen wijzigingen die rechtstreeks zijn opgegeven door de instructie INSERT
, UPDATE
of DELETE
worden geteld.
Aanvullende wijzigingen die zijn veroorzaakt door triggers, worden niet geteld. Gebruik de eigenschap SQLConnection.totalChanges
als u het totale aantal wijzigen wilt weten, met inbegrip van wijzigingen die zijn veroorzaakt door triggers.
Als de betreffende SQL-bewerking een DELETE
-instructie zonder WHERE
-clausule is (dat wil zeggen dat de instructie alle rijen in de tabel verwijdert), is de eigenschap rowsAffected
altijd 0, ongeacht het aantal verwijderde rijen. Als u wilt weten hoeveel rijen zijn verwijderd, kunt u de WHERE
-clausule WHERE 1 = 1
opnemen. In dit geval worden alle rijen verwijderd en bevat de eigenschap rowsAffected
het juiste aantal rijen dat is verwijderd. Afhankelijk van het aantal rijen dat wordt verwijderd, kan dit echter nadelig van invloed zijn op op de prestaties van de instructie.
Implementatie
public function get rowsAffected():Number
Verwante API-elementen
SQLResult | () | Constructor |
public function SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)
Taalversie: | ActionScript 3.0 |
Runtimeversies: | AIR 1.0 |
Creëert een SQLResult-instantie. De constructor SQLResult wordt gewoonlijk niet rechtstreeks aangeroepen in de ontwikkelcode. Als u een SQLResult-instantie wilt ophalen die is gekoppeld aan een bepaalde SQLStatement-instantie, roept u de methode getResult()
van de instantie aan. Een SQLResult-instantie wordt ook als argument doorgegeven aan de resultaathandlerfunctie als een Responder-instantie is opgegeven voor een aanroep van de methode execute()
of next()
.
data:Array (default = null ) — De array met rijen die wordt geretourneerd na uitvoering van een instructie. Als de instructie geen rijen retourneert, moet deze waarde null zijn.
| |
rowsAffected:Number (default = 0 ) — Geeft aan op hoeveel rijen de uitgevoerde instructie invloed heeft gehad.
| |
complete:Boolean (default = true ) — Geeft aan of er meer rijen zijn die kunnen worden opgehaald en of alle gegevens zijn geretourneerd.
| |
rowID:Number (default = 0 ) — Als de instructie de SQL-bewerking INSERT was, is dit de nieuwe unieke id voor de rij.
|
Wed Jun 13 2018, 11:42 AM Z