SELECT
문의 실행이 완료된 후의 다음 단계는 검색된 데이터에 액세스하는 것입니다. 결과 데이터는 SQLStatement 객체의
getResult()
메서드를 호출하여
SELECT
문을 실행해서 검색합니다.
var result:SQLResult = selectStatement.getResult();
getResult()
메서드는
SQLResult
객체를 반환합니다. SQLResult 객체의
data
속성은
SELECT
문의 결과를 포함하는 배열입니다.
var numResults:int = result.data.length;
for (var i:int = 0; i < numResults; i++)
{
// row is an Object representing one row of result data
var row:Object = result.data[i];
}
SELECT
결과의 각 데이터 행은
data
배열에 포함된 객체 인스턴스가 됩니다. 이 객체에는 결과 집합의 열 이름과 일치하는 이름의 속성이 있습니다. 이러한 속성에는 결과 집합의 열에 있는 값이 포함됩니다. 예를 들어,
SELECT
문에서 “itemId”, “itemName” 및 “price”라는 세 열이 포함된 결과 집합을 지정하는 경우 결과 집합의 행마다
itemId
,
itemName
및
price
라는 속성과 함께 Object 인스턴스가 만들어집니다. 이러한 속성에는 해당하는 열의 값이 포함됩니다.
다음 코드 샘플에서는
SELECT
문이 텍스트로 포함된 SQLStatement 인스턴스를 정의합니다. 이 문은
employees
라는 테이블에 있는 모든 행의
firstName
및
lastName
열 값이 포함된 행을 검색합니다. 이 예제에서는 비동기 실행 모드를 사용합니다. 실행이 완료되면
selectResult()
메서드가 호출되고 결과 데이터 행이
SQLStatement.getResult()
를 사용하여 액세스되고
trace()
메서드를 사용하여 표시됩니다. 이 샘플에서는 이미 인스턴스화되고 데이터베이스에 연결된
conn
이라는 SQLConnection 인스턴스가 있다고 가정합니다. 또한 “employees” 테이블이 이미 만들어져서 데이터로 채워져 있다고 가정합니다.
import flash.data.SQLConnection;
import flash.data.SQLResult;
import flash.data.SQLStatement;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
// ... create and open the SQLConnection instance named conn ...
// create the SQL statement
var selectStmt:SQLStatement = new SQLStatement();
selectStmt.sqlConnection = conn;
// define the SQL text
var sql:String =
"SELECT firstName, lastName " +
"FROM employees";
selectStmt.text = sql;
// register listeners for the result and error events
selectStmt.addEventListener(SQLEvent.RESULT, selectResult);
selectStmt.addEventListener(SQLErrorEvent.ERROR, selectError);
// execute the statement
selectStmt.execute();
function selectResult(event:SQLEvent):void
{
// access the result data
var result:SQLResult = selectStmt.getResult();
var numRows:int = result.data.length;
for (var i:int = 0; i < numRows; i++)
{
var output:String = "";
for (var columnName:String in result.data[i])
{
output += columnName + ": " + result.data[i][columnName] + "; ";
}
trace("row[" + i.toString() + "]\t", output);
}
}
function selectError(event:SQLErrorEvent):void
{
trace("Error message:", event.error.message);
trace("Details:", event.error.details);
}
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
import flash.data.SQLConnection;
import flash.data.SQLResult;
import flash.data.SQLStatement;
import flash.events.SQLErrorEvent;
import flash.events.SQLEvent;
private function init():void
{
// ... create and open the SQLConnection instance named conn ...
// create the SQL statement
var selectStmt:SQLStatement = new SQLStatement();
selectStmt.sqlConnection = conn;
// define the SQL text
var sql:String =
"SELECT firstName, lastName " +
"FROM employees";
selectStmt.text = sql;
// register listeners for the result and error events
selectStmt.addEventListener(SQLEvent.RESULT, selectResult);
selectStmt.addEventListener(SQLErrorEvent.ERROR, selectError);
// execute the statement
selectStmt.execute();
}
private function selectResult(event:SQLEvent):void
{
// access the result data
var result:SQLResult = selectStmt.getResult();
var numRows:int = result.data.length;
for (var i:int = 0; i < numRows; i++)
{
var output:String = "";
for (var columnName:String in result.data[i])
{
output += columnName + ": " + result.data[i][columnName] + "; ";
}
trace("row[" + i.toString() + "]\t", output);
}
}
private function selectError(event:SQLErrorEvent):void
{
trace("Error message:", event.error.message);
trace("Details:", event.error.details);
}
]]>
</mx:Script>
</mx:WindowedApplication>
다음 코드 샘플에서는 이전 코드와 동일한 방법을 보여 주지만 동기 실행 모드를 사용합니다. 이 예제에서는
SELECT
문이 텍스트로 포함된
SQLStatement
인수를 정의합니다. 이 문은
employees
라는 테이블에 있는 모든 행의
firstName
및
lastName
열 값이 포함된 행을 검색합니다. 결과 데이터 행은
SQLStatement.getResult()
를 사용하여 액세스되고
trace()
메서드를 사용하여 표시됩니다. 이 샘플에서는 이미 인스턴스화되고 데이터베이스에 연결된
conn
이라는 SQLConnection 인스턴스가 있다고 가정합니다. 또한 “employees” 테이블이 이미 만들어져서 데이터로 채워져 있다고 가정합니다.
import flash.data.SQLConnection;
import flash.data.SQLResult;
import flash.data.SQLStatement;
import flash.errors.SQLError;
// ... create and open the SQLConnection instance named conn ...
// create the SQL statement
var selectStmt:SQLStatement = new SQLStatement();
selectStmt.sqlConnection = conn;
// define the SQL text
var sql:String =
"SELECT firstName, lastName " +
"FROM employees";
selectStmt.text = sql;
try
{
// execute the statement
selectStmt.execute();
// access the result data
var result:SQLResult = selectStmt.getResult();
var numRows:int = result.data.length;
for (var i:int = 0; i < numRows; i++)
{
var output:String = "";
for (var columnName:String in result.data[i])
{
output += columnName + ": " + result.data[i][columnName] + "; ";
}
trace("row[" + i.toString() + "]\t", output);
}
}
catch (error:SQLError)
{
trace("Error message:", error.message);
trace("Details:", error.details);
}
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="init()">
<mx:Script>
<![CDATA[
import flash.data.SQLConnection;
import flash.data.SQLResult;
import flash.data.SQLStatement;
import flash.errors.SQLError;
private function init():void
{
// ... create and open the SQLConnection instance named conn ...
// create the SQL statement
var selectStmt:SQLStatement = new SQLStatement();
selectStmt.sqlConnection = conn;
// define the SQL text
var sql:String =
"SELECT firstName, lastName " +
"FROM employees";
selectStmt.text = sql;
try
{
// execute the statement
selectStmt.execute();
// access the result data
var result:SQLResult = selectStmt.getResult();
var numRows:int = result.data.length;
for (var i:int = 0; i < numRows; i++)
{
var output:String = "";
for (var columnName:String in result.data[i])
{
output += columnName + ": ";
output += result.data[i][columnName] + "; ";
}
trace("row[" + i.toString() + "]\t", output);
}
}
catch (error:SQLError)
{
trace("Error message:", error.message);
trace("Details:", error.details);
}
}
]]>
</mx:Script>
</mx:WindowedApplication>