캠핑과 개발

//DB 생성 파일 위치
    var dbFile : File = File.desktopDirectory.resolvePath("application.db");
    
    //table생성
    var conn:SQLConnection = new SQLConnection(); //DB를 연결합니다..
    conn.open(dbFile);    
    var syntax:String = "CREATE TABLE IF NOT EXISTS testTable (" +
   "no INTEGER PRIMARY KEY AUTOINCREMENT," +
   "title TEXT," +
   "url TEXT" +
   ")";
  sendQuery(conn, syntax);
  
  //스키마 정보 확인
  try {
   conn.loadSchema();
   var schemaResult:SQLSchemaResult = conn.getSchemaResult();
   if (schemaResult) {
    for(var obj:String in schemaResult.tables){
     var table:SQLTableSchema = schemaResult.tables[obj] as SQLTableSchema;
     log("[" + table.name + "] 스키마(Schema)");
     for(var prop:String in table.columns){
      var column:SQLColumnSchema = table.columns[prop] as SQLColumnSchema;
      log("name:" + column.name + ",dataType:" + column.dataType + ",primaryKey:" + column.primaryKey + ",allowNull:" + column.allowNull + ",autoIncrement:" + column.autoIncrement + ",defaultCollationType:" + column.defaultCollationType);
     }
    }
   }
  } catch(e:Error) {
   log("테이블이 없습니다.");
  }
  
  //등록
  syntax = "INSERT INTO testTable (title, url) VALUES ('Adobe AIR Devpia.', 'http://airdev.tistory.com/')"; //no는 자동으로 증가
  sendQuery(conn, syntax);
  syntax = "INSERT INTO testTable (title, url) VALUES ('아폴로케이션[Apollocation]', 'http://cafe.naver.com/apollocation')"; //no는 자동으로 증가
  sendQuery(conn, syntax);
  
  //조회
  var syntax:String = "SELECT * FROM testTable";
  var responder:Responder = new Responder(
   function(e:SQLResult):void {
    var result:Array = e.data;
    var numRows:int = result.length;
    for(var i:int = 0; i < numRows; i++){
     log("필드 번호 :" + i);
     for(var columnName:String in result[i]){
      log(columnName + " :" + result[i][columnName]);
     }
    }
   }
  );
  sendQuery(conn, syntax, -1, responder);
  
  //DB 삭제
  syntax = "DROP TABLE testTable";
  sendQuery(conn, syntax);


private function sendQuery(conn:SQLConnection, syntax:String, prefetch:int=-1, responder:Responder=null):void { //쿼리 실행
  var stm:SQLStatement = new SQLStatement();
  stm.sqlConnection = conn;
  stm.text = syntax;
  stm.execute(prefetch, responder); //prefetch : 가져올 데이터 개수(-1이면 모두), responder : 결과, 상태 Responder
 }