패키지 | flash.data |
클래스 | public class SQLStatement |
상속 | SQLStatement EventDispatcher Object |
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
SQLStatement 인스턴스는 SQLConnection 인스턴스를 SQLStatement 인스턴스의 sqlConnection
속성 값으로 설정하여 SQLConnection 인스턴스에 연결됩니다. text
속성은 실행할 SQL 문의 실제 텍스트로 채워집니다. 필요한 경우 parameters
속성을 사용하여 SQL 문 매개 변수 값을 지정하고 execute()
메서드를 호출하여 이 명령문을 실행합니다.
로컬 SQL 데이터베이스에서 지원되는 SQL 언어에 대한 자세한 내용은 부록 로컬 데이터베이스의 SQL 지원을 참조하십시오.
비동기 실행 모드에서는 execute()
및 next()
메서드가 백그라운드에서 실행되고 작업이 완료되거나 실패할 때 런타임에서 이벤트를 등록된 이벤트 리스너나 지정된 Responder 인스턴스에 전달합니다. 동기 모드에서는 메서드가 기본 응용 프로그램 스레드에서 실행되므로 데이터베이스 작업이 완료될 때까지 다른 코드가 실행되지 않습니다. 또한 동기 모드에서는 메서드가 실패할 경우 런타임에서 오류 이벤트를 전달하지 않고 예외가 발생합니다.
관련 API 요소
속성 | 정의 주체 | ||
---|---|---|---|
constructor : Object
지정된 객체 인스턴스의 클래스 객체 또는 생성자 함수에 대한 참조입니다. | Object | ||
executing : Boolean [읽기 전용]
명령문이 현재 실행되고 있는지 여부를 나타냅니다. | SQLStatement | ||
itemClass : Class
명령문 실행의 결과로 반환되는 각 행에 대해 사용되는 클래스(데이터 유형)를 나타냅니다. | SQLStatement | ||
parameters : Object [읽기 전용]
SQL 문의 text 속성에 지정한 매개 변수의 값을 추가하는 연결 배열로 사용됩니다. | SQLStatement | ||
sqlConnection : SQLConnection
명령문을 실행할 대상 데이터베이스에 대한 연결을 관리하는 SQLConnection 객체입니다. | SQLStatement | ||
text : String
명령문의 실제 SQL 텍스트입니다. | SQLStatement |
메서드 | 정의 주체 | ||
---|---|---|---|
SQLStatement 인스턴스를 만듭니다. | SQLStatement | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
리스너에서 이벤트 알림을 받을 수 있도록 EventDispatcher 객체에 이벤트 리스너 객체를 등록합니다. | EventDispatcher | ||
이 명령문의 실행을 취소합니다. | SQLStatement | ||
현재 매개 변수 설정을 모두 지웁니다. | SQLStatement | ||
이벤트를 이벤트 흐름으로 전달합니다. | EventDispatcher | ||
sqlConnection 속성에 있는 SQLConnection 객체에 연결된 데이터베이스에 대해 텍스트 속성에 있는 SQL을 실행합니다. | SQLStatement | ||
SELECT 문의 모든 결과 행 및 실행되는 모든 명령문의 실행과 관련된 기타 정보를 비롯한 명령문 실행의 결과를 포함하는 SQLResult 객체에 대한 액세스를 제공합니다. | SQLStatement | ||
EventDispatcher 객체에 특정 유형의 이벤트에 대한 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher | ||
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다. | Object | ||
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다. | Object | ||
SELECT 문 결과 집합의 다음 부분을 검색합니다. | SQLStatement | ||
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다. | Object | ||
EventDispatcher 객체에서 리스너를 제거합니다. | EventDispatcher | ||
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다. | Object | ||
로캘별 규칙에 따라 서식이 지정된 이 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 문자열 표현을 반환합니다. | Object | ||
지정된 객체의 프리미티브 값을 반환합니다. | Object | ||
이 EventDispatcher 객체 또는 조상 객체에 지정한 이벤트 유형에 대한 이벤트 리스너가 등록되어 있는지 여부를 확인합니다. | EventDispatcher |
이벤트 | 요약 | 정의 주체 | ||
---|---|---|---|---|
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 얻어 활성화될 때 전달됩니다. | EventDispatcher | |||
[브로드캐스트 이벤트] Flash Player 또는 AIR 응용 프로그램이 운영 체제 포커스를 잃고 비활성화될 때 전달됩니다. | EventDispatcher | |||
작업 동안 오류가 발생할 때 전달됩니다. | SQLStatement | |||
execute() 또는 next() 메서드 호출의 작업이 성공적으로 완료될 때 전달됩니다. | SQLStatement |
executing | 속성 |
itemClass | 속성 |
itemClass:Class
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
명령문 실행의 결과로 반환되는 각 행에 대해 사용되는 클래스(데이터 유형)를 나타냅니다.
기본적으로 SELECT
문에서 반환하는 각 행은 Object 인스턴스로 만들어지며 결과 집합의 열 이름이 객체의 속성 이름으로 사용되고 각 열의 값이 관련 속성의 값으로 사용됩니다.
itemClass
속성의 클래스를 지정하면 이 SQLStatement 인스턴스가 실행하는 SELECT
문에서 반환되는 각 행은 지정한 클래스의 인스턴스로 만들어집니다. itemClass
인스턴스의 각 속성에는 속성과 이름이 같은 열의 값이 할당됩니다.
이 속성에 할당하는 모든 클래스에는 매개 변수가 필요하지 않은 생성자가 있어야 합니다. 또한 클래스에는 SELECT
문에서 반환되는 각 열에 대해 하나의 속성이 있어야 합니다. SELECT
목록의 열에 itemClass
클래스의 속성 이름과 일치하는 이름이 없는 경우 오류로 간주됩니다.
구현
public function get itemClass():Class
public function set itemClass(value:Class):void
관련 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()); } } }
parameters | 속성 |
parameters:Object
[읽기 전용] 언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
SQL 문의 text
속성에 지정한 매개 변수의 값을 추가하는 연결 배열로 사용됩니다. 배열 키는 매개 변수의 이름입니다. 명령문 텍스트에 이름이 지정되지 않은 매개 변수를 지정한 경우 해당 키는 매개 변수의 인덱스입니다.
SQL 문의 텍스트 내에서 매개 변수는 "?", ":" 또는 "@" 문자 중 하나로 표시됩니다.
":" 및 "@" 토큰은 이름이 지정된 매개 변수를 나타내고 토큰 다음의 문자는 매개 변수 이름을 지정합니다.
예를 들어 다음 SQL 문에서는 ":" 문자를 사용하여 firstName
이라는 매개 변수를 지정합니다.
SELECT FROM employees WHERE firstName = :firstName
"?" 토큰은 인덱싱된(번호 지정된) 매개 변수를 나타냅니다. 즉, 명령문 텍스트에서 매개 변수의 시퀀스에 따라 각 매개 변수에 인덱스가 자동으로 지정됩니다. 매개 변수의 인덱스 값은 0부터 시작합니다. 즉, 첫 번째 매개 변수의 인덱스는 0입니다.
매개 변수를 사용하면 SQL 문을 생성할 때는 알 수 없는 값을 입력하여 대체할 수 있습니다. 데이터베이스에 전달되는 값에 대해 저장소 클래스를 확보하는 방법은 매개 변수를 사용하는 것 외에는 없습니다. 매개 변수를 사용하지 않으면 모든 값이 관련 열의 유형 선호도에 따라 텍스트 표현에서 저장소 클래스로 변환됩니다. 저장소 클래스 및 열 선호도에 대한 자세한 내용은 "데이터 유형 지원" 단원(부록 "로컬 데이터베이스의 SQL 지원")을 참조하십시오.
매개 변수는 SQL 삽입 공격이라는 악의적 기술의 피해를 방지하기 위한 보안 조치로도 사용됩니다. SQL 삽입 공격에서는 사용자가 액세스 가능한 위치(예: 데이터 입력 필드)에 SQL 코드를 입력합니다. 사용자 입력을 SQL 텍스트에 직접 연결하여 응용 프로그램 코드에서 SQL 문을 생성하면 사용자가 입력한 SQL 코드가 데이터베이스에 대해 실행됩니다. 다음 목록에서는 사용자 입력을 SQL 텍스트에 연결하는 예제를 보여 줍니다. 이 방법을 사용하지 마십시오.
// 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;
매개 변수 값은 리터럴 명령문 텍스트의 일부가 되지 않고 명시적으로 대체 값으로 처리되므로 사용자가 입력한 값을 명령문의 텍스트에 연결하는 대신 명령문 매개 변수를 사용하면 SQL 삽입 공격을 방지할 수 있습니다. 다음은 이전 목록 대신 사용할 수 있는 권장 방법입니다.
// 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;
모든 매개 변수 값은 명령문을 실행하기 전에 설정해야 합니다. parameters
배열에서 지정한 매개 변수 값은 execute()
메서드를 호출할 때 바인딩(즉, 명령문 텍스트와 결합)됩니다. execute()
를 호출한 이후에는 값을 변경해도 실행 중인 명령문에 적용되지 않습니다. 그러나 다음에 execute()
를 호출할 때 변경된 값이 사용됩니다. parameters
속성에 값을 지정하지 않은 매개 변수가 명령문 텍스트에 들어 있으면 오류가 발생합니다.
parameters
속성에서 매개 변수 값을 모두 지우려면 clearParameters()
메서드를 사용합니다.
구현
public function get parameters():Object
관련 API 요소
예제 ( 예제 사용 방법 )
:firstName
을 사용하는 예제입니다.
// 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 | 속성 |
sqlConnection:SQLConnection
런타임 버전: | AIR 1.0 |
명령문을 실행할 대상 데이터베이스에 대한 연결을 관리하는 SQLConnection 객체입니다.
구현
public function get sqlConnection():SQLConnection
public function set sqlConnection(value:SQLConnection):void
오류
IllegalOperationError — 명령문이 실행되고 있는 동안 이 속성의 값을 변경하려고 할 경우
|
text | 속성 |
text:String
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
명령문의 실제 SQL 텍스트입니다.
텍스트는 지원되는 임의의 SQL일 수 있습니다. 로컬 SQL 데이터베이스에서 지원되는 SQL 언어에 대한 자세한 내용은 부록 "로컬 데이터베이스의 SQL 지원"을 참조하십시오.
구현
public function get text():String
public function set text(value:String):void
오류
IllegalOperationError — 명령문이 실행되고 있는 동안 text 속성을 변경하려고 하는 경우
|
SQLStatement | () | 생성자 |
public function SQLStatement()
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
SQLStatement 인스턴스를 만듭니다.
오류
SecurityError — 생성자가 기본 응용 프로그램 샌드박스 외부의 샌드박스에서 호출된 경우입니다.
|
cancel | () | 메서드 |
public function cancel():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
이 명령문의 실행을 취소합니다. SQLConnection.cancel()
과 마찬가지로 이 메서드는 장기 실행 쿼리를 중단하거나 아직 완료되지 않은 쿼리를 취소하는 데 사용됩니다. 그러나 SQLConnection.cancel()
과 달리 이 메서드는 단일 명령문만 취소합니다. 명령문이 현재 실행되고 있지 않은 경우 이 메서드를 호출하면 아무 것도 수행되지 않습니다.
cancel()
작업의 완료에 대한 직접 응답으로 이벤트가 전달되지 않습니다. 그러나 cancel()
작업이 완료되고 명령문 실행이 취소되면 SQLStatement 인스턴스는 명령문 실행(execute()
또는 next()
호출)이 완료되지 않았음을 나타내는 error
이벤트를 전달합니다. 또는 execute()
또는 next()
호출의 responder
매개 변수에 대해 값을 지정한 경우 지정된 오류 핸들러 메서드가 호출됩니다. 두 경우 모두 리스너에 전달되는 SQLError 인스턴스는 errorID
속성의 값이 3118(작업이 중단됨)이 됩니다.
clearParameters | () | 메서드 |
public function clearParameters():void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
현재 매개 변수 설정을 모두 지웁니다.
관련 API 요소
execute | () | 메서드 |
public function execute(prefetch:int = -1, responder:Responder = null):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
sqlConnection
속성에 있는 SQLConnection 객체에 연결된 데이터베이스에 대해 text
속성에 있는 SQL을 실행합니다.
responder
인수가 null
이 아닌 경우 지정한 Responder 객체는 작업의 결과를 처리하기 위해 호출되는 메서드를 지정합니다. responder
인수가 null
인 경우 비동기 실행 모드에서 작업이 성공하면 result
이벤트가 전달되고, 작업이 실패하면 error
이벤트가 전달됩니다.
SELECT
문의 결과 행 또는 데이터베이스에서 생성된 INSERT
문의 기본 키 같은 명령문의 결과에 액세스하려면 getResult()
메서드를 호출합니다. 결과는 명령문이 동기 모드에서 실행된 후 즉시 그리고 result
이벤트가 비동기 모드에서 전달될 때 사용할 수 있습니다.
각 명령을 실행하려면 먼저 준비(컴파일)해야 합니다. SQLStatement 인스턴스의 execute()
메서드를 처음으로 호출하면 런타임에서 명령문을 준비합니다. 명령문이 준비되면 text
속성을 변경하기 전까지는 다시 준비할 필요가 없습니다. 하나 이상의 매개 변수 값을 설정해도 명령문을 다시 준비할 필요가 없습니다.
매개 변수
prefetch:int (default = -1 ) — 명령문의 text 속성이 SELECT 문인 경우 이 값은 명령문에서 한 번에 반환하는 행 수를 나타냅니다. 기본값인 -1은 한 번에 모든 결과 행을 반환하는 것을 나타냅니다. 이 매개 변수를 next() 메서드와 함께 사용하여 큰 결과 집합을 작은 데이터 집합으로 나눕니다. 이렇게 하면 초기 결과를 더 빠르게 반환하고 결과 처리 작업을 분할하여 사용자가 응용 프로그램 성능이 나아진 것으로 인식하게 할 수 있습니다.
SQL 문이 | |
responder:Responder (default = null ) — 작업이 성공하거나 실패할 때 호출할 메서드를 지정하는 객체입니다. 비동기 실행 모드에서 responder 인수가 null 인 경우 실행이 완료되면 result 또는 error 이벤트가 전달됩니다.
|
이벤트
result: — 명령문 실행이 성공적으로 완료될 때나 prefetch 인수 값이 지정되어 있고 SELECT 문이 하나 이상의 데이터 행을 반환할 때 전달됩니다.
| |
error: — 비동기 실행 모드에서 작업이 실패하는 경우 전달됩니다.
|
오류
IllegalOperationError — text 속성이 null 이거나 빈 문자열("" )을 포함하는 경우, sqlConnection 속성이 설정되지 않은 경우, sqlConnection 속성에 할당된 SQLConnection 인스턴스가 연결되지 않은 경우 또는 명령문이 현재 실행 중인 경우입니다.
| |
SQLError — 동기 실행 모드에서 작업이 실패하는 경우입니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
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 | () | 메서드 |
public function getResult():SQLResult
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
SELECT
문의 모든 결과 행 및 실행되는 모든 명령문의 실행과 관련된 기타 정보를 비롯한 명령문 실행의 결과를 포함하는 SQLResult 객체에 대한 액세스를 제공합니다. 비동기 실행 모드에서는 result
이벤트가 전달될 때까지 결과 정보를 사용할 수 없습니다.
SELECT
문을 실행할 때 기본 prefetch
인수인 -1을 사용하여 execute()
메서드를 호출하는 경우 반환되는 SQLResult 객체에는 쿼리의 전체 결과 집합이 포함됩니다.
execute()
또는 next()
메서드 호출에 대해 prefetch
인수를 지정하면 getResult()
메서드는 결과의 선입 선출 대기열로 동작합니다. result
이벤트가 전달될 때마다 대기열에 새 SQLResult 객체가 추가됩니다. getResult()
메서드를 호출할 때마다 가장 오래된 SQLResult 객체(대기열에 처음으로 추가된 객체)가 반환되고 대기열에서 제거됩니다. 대기열에 SQLResult 객체가 남아 있지 않으면 getResult()
는 null
을 반환합니다.
getResult()
를 호출하여 SQLResult 객체를 제거하지 않는 한 이 객체는 대기열에 그대로 유지됩니다. 예를 들어 getResult()
를 호출하지 않고 execute()
메서드를 여러 번 호출하면 각 execute()
호출과 관련된 SQLResult 객체가 대기열에 그대로 유지됩니다.
SQLResult — execute() 또는 next() 메서드에 대한 호출의 결과를 포함하는 SQLResult 객체입니다.
|
관련 API 요소
next | () | 메서드 |
public function next(prefetch:int = -1, responder:Responder = null):void
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
SELECT
문 결과 집합의 다음 부분을 검색합니다. 결과 집합에 행이 더 이상 없으면 result
이벤트는 전달되지만 getResult()
대기열에 SQLResult 객체가 추가되지 않습니다.
비동기 실행 모드에서 responder
인수가 null
이 아닌 경우 지정한 Responder 객체는 작업 결과를 처리하기 위해 호출하는 메서드를 나타냅니다. responder
인수가 null
인 경우 작업에 성공하면 result
이벤트가 전달되고 작업에 실패하면 error
이벤트가 전달됩니다.
이 메서드는 명령문이 계속 실행되고 있는 경우에만 호출할 수 있습니다. 명령문이 SELECT
쿼리이고 0보다 큰 prefetch
인수를 지정하는 경우 전체 결과 집합이 반환되거나 SQLStatement.cancel()
또는 SQLConnection.cancel()
메서드가 호출될 때까지 명령문이 실행됩니다.
매개 변수
prefetch:int (default = -1 ) — 명령문의 text 속성이 SELECT 문인 경우 이 값은 명령문에서 한 번에 반환하는 행 수를 나타냅니다. 기본값인 -1은 한 번에 모든 결과 행을 반환하는 것을 나타냅니다. 이렇게 하면 초기 결과를 더 빠르게 반환하고 결과 처리 작업을 분할하여 사용자가 응용 프로그램 성능이 나아진 것으로 인식하게 할 수 있습니다.
| |
responder:Responder (default = null ) — 작업이 성공하거나 실패할 때 호출할 메서드를 지정하는 객체입니다. responder 인수가 null 인 경우 실행이 완료되면 result 또는 error 이벤트가 전달됩니다.
|
이벤트
result: — 명령문 실행이 성공적으로 완료될 때나 prefetch 인수 값이 지정되어 있고 next() 호출이 하나 이상의 데이터 행을 반환할 때 전달됩니다.
| |
error: — 비동기 실행 모드에서 작업이 실패하는 경우 전달됩니다.
|
오류
IllegalOperationError — 명령문이 현재 실행되고 있지 않은 동안 메서드를 호출하는 경우(executing 속성이 false 인 경우)
| |
SQLError — 동기 실행 모드에서 작업이 실패하는 경우입니다.
|
관련 API 요소
예제 ( 예제 사용 방법 )
complete
속성을 확인하고 검색되지 않은 행이 있으면 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 | 이벤트 |
flash.events.SQLErrorEvent
속성 SQLErrorEvent.type =
flash.events.SQLErrorEvent.ERROR
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
작업 동안 오류가 발생할 때 전달됩니다.
SQLErrorEvent.ERROR
상수는 SQLConnection 또는 SQLStatement 인스턴스의 메서드 호출이 완료되었지만 오류가 발생할 때 전달되는 error 이벤트의 type
속성 값을 정의합니다. error
이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
error | 발생한 오류 유형 및 오류를 발생시킨 작업에 대한 정보가 포함된 SQLError 객체입니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 오류를 보고하는 SQLConnection 또는 SQLStatement 객체입니다. |
관련 API 요소
result | 이벤트 |
flash.events.SQLEvent
속성 SQLEvent.type =
flash.events.SQLEvent.RESULT
언어 버전: | ActionScript 3.0 |
런타임 버전: | AIR 1.0 |
execute()
또는 next()
메서드 호출의 작업이 성공적으로 완료될 때 전달됩니다. result
이벤트가 전달되면 getResult()
메서드를 호출하여 명령문 결과를 검색할 수 있습니다.
SQLEvent.RESULT
상수는 result
이벤트 객체의 type
속성 값을 정의합니다. SQLStatement.execute()
메서드 또는 SQLStatement.next()
가 성공적으로 완료될 때 전달됩니다. SQLEvent.RESULT
이벤트가 전달되면 SQLStatement.getResult()
메서드를 호출하여 결과 데이터에 액세스할 수 있습니다. result
이벤트에는 다음과 같은 속성이 있습니다.
속성 | 값 |
---|---|
bubbles | false |
cancelable | false . 취소할 기본 비헤이비어가 없습니다. |
currentTarget | 이벤트 리스너를 통해 Event 객체를 처리하고 있는 객체입니다. |
target | 작업을 수행한 SQLStatement 객체입니다. |
관련 API 요소
Tue Jun 12 2018, 03:17 PM Z