Paket | flash.data |
Klass | public class SQLResult |
Arv | SQLResult Object |
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Åtkomst till SQLResult-instansen för en SQL-sats erhålls genom anrop till metoden SQLStatement.getResult()
eller som ett argument som skickas till resultathanteraren för en Responder som har angetts i ett anrop till SQLStatement.execute()
eller SQLStatement.next()
. I allmänhet skapas inte SQLResult-instanser direkt av koden.
Använd ett SQLResult-objekt för att få åtkomst till de datarader som har returnerats från en SELECT
-sats (med hjälp av egenskapen data
), för att få radidentifierarinformation för en INSERT
-sats (med hjälp av egenskapen lastInsertRowID
), för att avgöra antalet rader som har påverkats av en INSERT
-, UPDATE
- eller DELETE
-sats (med hjälp av egenskapen rowsAffected
), eller för att avgöra om det finns ytterligare SELECT
-resultatrader som inte har hämtats (med hjälp av egenskapen complete
).
Relaterade API-element
Egenskap | Definieras med | ||
---|---|---|---|
complete : Boolean [skrivskyddad]
Anger om alla resulterande data från en satskörning har returnerats. | SQLResult | ||
constructor : Object
En referens till klassobjektet eller konstruktorfunktionen för en given objektinstans. | Object | ||
data : Array [skrivskyddad]
Data som har returnerats som ett resultat av satskörningen, särskilt när en SQL SELECT-sats körs. | SQLResult | ||
lastInsertRowID : Number [skrivskyddad]
Radidentifierare av den senaste raden som har genererats av en SQL INSERT-sats. | SQLResult | ||
rowsAffected : Number [skrivskyddad]
Anger hur många rader som har påverkats av åtgärden. | SQLResult |
Metod | Definieras med | ||
---|---|---|---|
Skapar en SQLResult-instans. | SQLResult | ||
Anger om det finns en egenskap angiven för ett objekt. | Object | ||
Anger om en instans av klassen Object finns i prototypkedjan för objektet som anges som parameter. | Object | ||
Anger om den angivna egenskapen finns och är uppräkningsbar. | Object | ||
Anger tillgänglighet för en dynamisk egenskap för slingåtgärder. | Object | ||
Returnerar det här objektets strängrepresentation, formaterad i enlighet med språkspecifika konventioner. | Object | ||
Returnerar det angivna objektets strängbeteckning. | Object | ||
Returnerar det angivna objektets primitiva värde. | Object |
complete | egenskap |
complete:Boolean
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Anger om alla resulterande data från en satskörning har returnerats.
Om en sats returnerar en eller flera rader anger den här egenskapen om samtliga rader har returnerats. Om execute()
-metoden för ett SQLStatement-objekt anropas med ett prefetch
-argumentvärde returneras endast det antal resulterande rader som har angetts i SQLResult-objektets egenskap data
. Påföljande anrop till SQLStatement.next()
gör ytterligare data tillgängliga. Den här egenskapen används för att avgöra när de sista resultaten har returnerats.
Observera att eftersom radantalet är okänt vid körningen måste databasmarkören placeras efter sista raden innan satskörningen kan betraktas som slutförd. När metoden SQLStatement.execute()
anropas med ett prefetch
-argument måste minst en rad utöver det totala antalet rader i resultatuppsättningen begäras innan den resulterande SQLResult-instansens complete
-egenskap är true
.
Implementering
public function get complete():Boolean
Relaterade API-element
data | egenskap |
data:Array
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Data som har returnerats som ett resultat av satskörningen, särskilt när en SQL SELECT
-sats körs.
När en sats returnerar en eller flera rader är den här egenskapen en array som innehåller objekt som representerar resultatdataraderna. Varje objekt i arrayen har egenskapsnamn som motsvarar kolumnnamnen i resultatdatauppsättningen.
Anta till exempel att du kör följande SQL SELECT
-sats:
SELECT lastName, firstName FROM employees
Om tabellen employees
innehåller 10 rader är egenskapen SQLResult.data
en array med 10 element. Varje element är ett objekt med två egenskaper, lastName
och firstName
.
Situationen blir mer komplicerad när du använder en SELECT
-sats med en komplex resultatkolumn, t.ex. en mängdfunktion. Anta till exempel att du kör följande SQL-sats:
SELECT departmentId, SUM(salary) FROM employees GROUP BY departmentId
I resultatet av den här satsen har varje objekt i arrayen data
två egenskaper som kallas departmentId
och SUM(salary)
. "SUM(salary)" är dock inte en giltig identifierare. Om du använder en beräknad kolumn, t.ex. en mängdfunktion eller annan funktion, ska du ange ett alias för den beräknade kolumnen i SQL-satsen. Detta alias används som egenskapsnamnet i resultatdataobjekten. Överväg till exempel detta alternativ i stället för den föregående satsen:
SELECT departmentId, SUM(salary) AS salarySubtotal FROM employees GROUP BY departmentId
I den här satsens data
-array har resultatobjekten två egenskaper kallade departmentId
och salarySubtotal
.
Egenskapen data
är alltid en array oavsett hur många rader och kolumner som finns i resultatuppsättningen. Följande SELECT
-sats resulterar till exempel i en rad och en kolumn, vilket i grund och botten är ett enda värde:
SELECT COUNT(*) AS numEmployees FROM employees
När frågan har körts innehåller egenskapen data
ett array-objekt med ett element. Det elementet är ett objekt med en enda egenskap, numEmployees
.
Om det finns duplicerade kolumnnamn i resulterande data, till exempel om SELECT
-satsen innehåller två olika id
-kolumner från två olika tabeller, tilldelas de duplicerade namnen egenskapsnamn beroende på värdet i egenskapen SQLConnection.columnNameStyle
. Som standard används varje kolumnnamn som egenskapsnamn, men om det finns flera kolumner i resultatuppsättningen med samma namn används det långa namnformatet [table-name]_[column-name]
för att identifiera kolumnerna. Detta kan ändras genom att du ställer in egenskapen SQLConnection.columnNameStyle
.
Som standard är objekten i data
-arrayen objektinstanser. Genom att ställa in värdet för egenskapen SQLStatement.itemClass
på en klass kan elementen i data
-arrayen skapas som instanser av den klassen i stället. För varje kolumn i resultatdatauppsättningen måste klassen itemClass
ha en egenskap vars namn exakt motsvarar kolumnnamnet.
Om en sats inte returnerar några data är den här egenskapen null
. Det är fallet om satsen inte är en SELECT
-sats eller om den är en SELECT
-sats som returnerar 0 rader.
Implementering
public function get data():Array
Relaterade API-element
Exempel ( Så här använder du exemplet )
itemClass
används för att få körningen att skapa anpassade klassinstanser från SQL SELECT
-satsresultaten.
// 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 | egenskap |
lastInsertRowID:Number
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Radidentifierare av senaste raden som har genererats av en SQL INSERT
-sats.
Värdet är 0 om den körda satsen inte var någon INSERT
-sats.
En radidentifierare används för att unikt identifiera en rad i tabellen inom databasen. Värdet genereras ofta av databasen.
Mer information om primära tangenter och skapade radidentifierare finns i avsnitten ”CREATE TABLE” och ”Uttryck” i bilagan ”SQL-stöd i lokala databaser”.
Implementering
public function get lastInsertRowID():Number
Relaterade API-element
rowsAffected | egenskap |
rowsAffected:Number
[skrivskyddad] Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Anger hur många rader som har påverkats av åtgärden. Endast ändringar som direkt anges av en INSERT
-, UPDATE
- eller DELETE
-sats räknas.
Bidragande ändringar orsakade av utlösare räknas inte. Använd egenskapen SQLConnection.totalChanges
om du vill få reda på det totala antalet ändringar inklusive ändringar orsakade av utlösare.
Observera att om den relaterade SQL-åtgärden är en DELETE
-sats utan WHERE
-sats (d.v.s. satsen raderar alla rader i tabellen), är egenskapen rowsAffected
alltid 0, oavsett hur många rader som har raderats. För att ta reda på hur många rader som har raderats kan du inkludera WHERE
-satsen WHERE 1 = 1
. Då raderas alla rader och egenskapen rowsAffected
uppger hur många rader som har raderats. Det här kan dock påverka satsens prestanda negativt beroende på antalet raderade rader.
Implementering
public function get rowsAffected():Number
Relaterade API-element
SQLResult | () | Konstruktor |
public function SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)
Språkversion: | ActionScript 3.0 |
Körningsmiljöversioner: | AIR 1.0 |
Skapar en SQLResult-instans. I allmänhet anropas SQLResult-konstruktorn direkt i koden. Om du vill hämta en SQLResult-instans som är associerad med en särskild SQLStatement-instans anropar du instansens getResult()
-metod. En SQLResult-instans skickas också som ett argument till resultathanterarfunktionen när en Responder-instans har angetts för ett execute()
- eller next()
-metodanrop.
data:Array (default = null ) — Arrayen med rader som har returnerats från satskörningen. Om satsen inte returnerar några rader ska värdet vara null.
| |
rowsAffected:Number (default = 0 ) — Anger hur många rader som har påverkats av satsen som har körts.
| |
complete:Boolean (default = true ) — Anger om det finns ytterligare rader som kan hämtas eller om alla data har returnerats.
| |
rowID:Number (default = 0 ) — Om satsen var en SQL-INSERT -åtgärd är detta den nya unika identifieraren för raden.
|
Tue Jun 12 2018, 01:40 PM Z