패키지 | flash.data |
클래스 | public class SQLResult |
상속 | SQLResult Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
SQL 문의 SQLResult 인스턴스는 SQLStatement.getResult()
메서드를 호출하여 액세스하거나 SQLStatement.execute()
또는 SQLStatement.next()
에 대한 호출에서 지정한 Responder 인스턴스의 결과 핸들러에 전달되는 인수로 액세스합니다. 일반적으로 개발자 코드에서 SQLResult 인스턴스를 직접 생성하지 않습니다.
SQLResult 객체를 사용하면 SELECT
문에서 반환되는 데이터 행에 액세스하거나(data
속성 사용), INSERT
문에 대한 행 식별자 정보를 가져오거나(lastInsertRowID
속성 사용), INSERT
, UPDATE
또는 DELETE
문의 영향을 받는 행 수를 확인하거나(rowsAffected
속성 사용), 검색하지 않은 추가 SELECT
결과 행이 있는지 여부를 확인(complete
속성 사용)할 수 있습니다.
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
complete : Boolean [읽기 전용]
명령문 실행의 결과 데이터가 모두 반환되었는지 여부를 나타냅니다. | SQLResult | ||
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
data : Array [읽기 전용]
특히 SQL SELECT 문을 실행할 때 명령문 실행의 결과로 반환된 데이터입니다. | SQLResult | ||
lastInsertRowID : Number [읽기 전용]
SQL INSERT 문에서 생성한 마지막 행 식별자입니다. | SQLResult | ||
rowsAffected : Number [읽기 전용]
작업의 영향을 받은 행 수를 나타냅니다. | SQLResult |
메서드 | 정의 주체 | ||
---|---|---|---|
SQLResult 인스턴스를 만듭니다. | SQLResult | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object |
complete | 속성 |
complete:Boolean
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
명령문 실행의 결과 데이터가 모두 반환되었는지 여부를 나타냅니다.
명령문에서 하나 이상의 행을 반환하는 경우 이 속성은 모든 행이 반환되었는지 여부를 나타냅니다. SQLStatement 객체의 execute()
메서드를 prefetch
인수 값과 함께 호출하면 SQLResult 객체의 data
속성에서 지정한 수의 결과 데이터 행만 반환됩니다. 이후에 SQLStatement.next()
를 호출하면 추가 데이터를 사용할 수 있게 됩니다. 이 속성은 최종 결과가 반환된 때를 확인하는 데 사용됩니다.
실행 중에 행 수를 알 수 없으므로 데이터베이스 커서가 마지막 행을 넘어가야만 해당 명령문 실행이 완료된 것으로 간주됩니다. SQLStatement.execute()
메서드를 prefetch
인수와 함께 호출하는 경우 결과 집합의 총 행 수보다 하나 이상 많은 행을 요청해야만 결과 SQLResult 인스턴스의 complete
속성이 true
가 됩니다.
구현
public function get complete():Boolean
관련 API 요소
data | 속성 |
data:Array
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
특히 SELECT
문을 실행할 때 명령문 실행의 결과로 반환된 데이터입니다.
명령문이 하나 이상의 행을 반환하면 이 속성은 결과 데이터 행을 나타내는 객체가 들어 있는 배열입니다. 배열의 각 객체에는 결과 데이터 세트의 열 이름에 해당하는 속성 이름이 있습니다.
예를 들어 다음과 같은 SQL SELECT
문을 실행한다고 가정합니다.
SELECT lastName, firstName FROM employees
employees
테이블에 10개의 행이 있다고 가정할 경우 SQLResult.data
속성은 10개의 요소가 있는 배열입니다. 각 요소는 lastName
과 firstName
이라는 두 개의 속성이 있는 객체입니다.
집계 함수와 같이 복잡한 결과 열이 있는 SELECT
문을 사용할 때는 상황이 더욱 복잡합니다. 예를 들어 다음과 같은 SQL을 실행한다고 가정합니다.
SELECT departmentId, SUM(salary) FROM employees GROUP BY departmentId
이 명령문의 결과에서 data
배열의 각 객체에는 departmentId
와 SUM(salary)
이라는 두 개의 속성이 있습니다. 그러나 "SUM(salary)"은 유효한 식별자가 아닙니다. 집계 함수나 다른 함수처럼 계산된 열을 사용하는 경우 SQL 문의 계산된 열에 별칭을 지정합니다. 이 별칭은 결과 데이터 객체에서 속성 이름으로 사용됩니다. 예를 들어 이전 명령문 대신 다음을 생각해 보십시오.
SELECT departmentId, SUM(salary) AS salarySubtotal FROM employees GROUP BY departmentId
이 명령문의 data
배열에서 결과 객체에는 departmentId
와 salarySubtotal
이라는 두 개의 속성이 있습니다.
data
속성은 결과 세트에 포함된 행과 열의 수에 관계없이 항상 Array입니다. 예를 들어 다음 SELECT
문을 실행하면 하나의 행과 하나의 열(기본적으로 단일 값임)이 만들어집니다.
SELECT COUNT(*) AS numEmployees FROM employees
쿼리를 실행하면 data
속성에 하나의 요소가 있는 Array 객체가 포함됩니다. 해당 요소는 numEmployees
라는 단일 속성이 있는 객체입니다.
결과 데이터에 중복된 열 이름이 있을 경우(예: SELECT
문에 서로 다른 두 개의 테이블에서 가져온 두 개의 다른 id
열이 있을 경우) SQLConnection.columnNameStyle
속성 값에 따라 중복 이름에 속성 이름이 지정됩니다. 기본적으로 각 열의 이름은 속성 이름으로 사용되지만 결과 세트에 이름이 동일한 열이 여러 개 있을 경우 동일한 이름의 열에는 긴 이름 형식 [table-name]_[column-name]
이 사용됩니다. 이 비헤이비어는 SQLConnection.columnNameStyle
속성을 설정하여 변경할 수 있습니다.
기본적으로 data
Array의 객체는 Object 인스턴스입니다. 그러나 SQLStatement.itemClass
속성의 값을 클래스로 설정하면 data
Array 요소가 해당 클래스의 인스턴스로 만들어집니다. 결과 데이터 세트의 모든 열에 대해 이름이 열 이름과 정확하게 일치하는 속성이 itemClass
클래스에 있어야 합니다.
명령문이 데이터를 반환하지 않을 경우 이 속성은 null
입니다. 명령문이 SELECT
문이 아닌 경우 또는 0개의 행을 반환하는 SELECT
문인 경우에 해당합니다.
구현
public function get data():Array
관련 API 요소
예제 ( 예제 사용 방법 )
itemClass
속성을 사용하여 런타임이 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 | 속성 |
lastInsertRowID:Number
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
SQL INSERT
문에서 생성한 마지막 행 식별자입니다.
실행된 명령문이 INSERT
문이 아닌 경우 값은 0입니다.
행 식별자는 데이터베이스 내의 테이블에 있는 행을 고유하게 식별하는 데 사용됩니다. 이 값은 데이터베이스에서 자주 생성됩니다.
기본 키 및 생성되는 행 식별자에 대한 자세한 내용은 "CREATE TABLE" 및 "Expressions" 단원(부록 "로컬 데이터베이스의 SQL 지원")을 참조하십시오.
구현
public function get lastInsertRowID():Number
관련 API 요소
rowsAffected | 속성 |
rowsAffected:Number
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
작업의 영향을 받은 행 수를 나타냅니다. INSERT
, UPDATE
또는 DELETE
문에서 직접 지정한 변경 사항만 계산에 포함됩니다.
트리거로 인한 부가적인 변경 사항은 계산에 포함되지 않습니다. SQLConnection.totalChanges
속성을 사용하면 트리거로 인한 변경 사항을 포함하여 변경 사항의 총 수를 알 수 있습니다.
관련 SQL 작업이 WHERE
절이 없는 DELETE
문인 경우(즉, 명령문이 테이블의 모든 행을 삭제하는 경우) rowsAffected
속성은 삭제된 행 수에 관계없이 항상 0입니다. 삭제된 행 수를 알아야 하는 경우 WHERE
절을 포함할 수 있습니다. WHERE 1 = 1
인 경우 모든 행이 삭제되고 rowsAffected
속성에 삭제된 행 수가 정확하게 반영됩니다. 그러나 이렇게 하면 삭제되는 행 수에 따라 성능에 나쁜 영향을 줄 수 있습니다.
구현
public function get rowsAffected():Number
관련 API 요소
SQLResult | () | 생성자 |
public function SQLResult(data:Array = null, rowsAffected:Number = 0, complete:Boolean = true, rowID:Number = 0)
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
SQLResult 인스턴스를 만듭니다. 일반적으로 개발자 코드에서 SQLResult 생성자를 직접 호출하지 않습니다. 특정 SQLStatement 인스턴스와 연관된 SQLResult 인스턴스를 검색하려면 인스턴스의 getResult()
메서드를 호출합니다. execute()
또는 next()
메서드 호출에 대해 Responder 인스턴스를 지정하면 SQLResult 인스턴스도 결과 핸들러 함수에 인수로 전달됩니다.
data:Array (default = null ) — 명령문 실행에서 반환되는 행 배열입니다. 명령문에서 행을 반환하지 않는 경우 이 값은 null이어야 합니다.
| |
rowsAffected:Number (default = 0 ) — 실행된 명령문의 영향을 받는 행 수를 나타냅니다.
| |
complete:Boolean (default = true ) — 페치할 수 있는 추가 행이 있는지 또는 모든 데이터가 반환되었는지 여부를 나타냅니다.
| |
rowID:Number (default = 0 ) — 명령문이 SQL INSERT 작업인 경우 이 값이 행의 새로운 고유한 식별자가 됩니다.
|
Tue Jun 12 2018, 03:17 PM Z