AIR/local SQL활용2009. 2. 15. 12:17


앞서 DB와 DBTable을 만들었으면 AIR에서 입력받은 데이터를 저장해야 한다. 방법은 앞서정리한 DB객체 프로세스와 동일하다. 다만 SQL문만 달라질 뿐이다.

이번에는 내문서에 B1TestDB를 만들고 책관련 DB인 bookstore가 있다는 가정하에 아래와 같이 정리한다.
var file:File = File.documentsDirectory.resolvePath("B1TestDB.db");
var connection:SQLConnection = new SQLConnection();
var statement:SQLStatement = new SQLStatement();

//UPDATE는 기존 DBTable을 편집하기위해서 사용한다.
connection.openAsync( file , SQLMode.UPDATE );
statement.sqlConnection = connection;
connection.addEventListener( SQLEvent.OPEN , open );

function open( e:SQLEvent ):void
{
아래처럼 E4X문법( @ , : )을 사용하여 공간을 할당하고 이후 [] 연산자를 사용하여 값을 동적으로 대입하는 것이 효과적이다.  이유는 명령문이 실행시 마다 문법이 다르면 AIR는 재컴파일하는데  아래처럼 최초 한번만 정의하면 값이 달라져 문장이 틀려도 재컴파일 하는 경우가 없어 효율적이다.
statement.text = "INSERT INTO bookstore( title, publisher, introduction ) VALUES( @title, @publisher, @introduction )";

//AIR에서 입력받은 변수값을 대입한다.
statement.parameters["@title"] = titleField.text
statement.parameters["@publisher"] = pubField.text
statement.parameters["@introduction"] = introField.text
statement.execute( -1 , new Responder( insertSuccess , insertFault )  );
    
//사용한 파라미터 제거
statement.clearParameters()
}

//사용한 DB커넥션 종료
function insertSuccess():void
{
connection.close();
}

참고) SQL명령문

Posted by 버터백통