Calendar

June 2007
M T W T F S S
« May   Jul »
 123
45678910
11121314151617
18192021222324
252627282930  

Tag Cloud

Categories

Archives

Highest Rated

Most Viewed

Recent Posts

Recent Comments


« AIR Embedded Database Sample Application | Main | AIR Embedded Database Code Exerpts 2 »

AIR Embedded Database Code Exerpts 1

By Rich Tretola | June 12, 2007Print This Post Print This Post
1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
Loading ... Loading ...
164 views

Here are some excerpts for the AIR Embedded Database post.

The class below on init will attempt to open the database file and if it is not found will then create the database file and then call the functions to create the tables.

Creating the database:

  1. package com.everythingflex.employeeDirectory.utils
  2. {
  3.     import com.adobe.cairngorm.control.CairngormEventDispatcher;
  4.     import com.everythingflex.employeeDirectory.control.GetUserIdEvent;
  5.     import com.everythingflex.employeeDirectory.dao.EmployeeDAO;
  6.     import com.everythingflex.employeeDirectory.dao.PreferencesDAO;
  7.     import com.everythingflex.employeeDirectory.model.ModelLocator;
  8.  
  9.     import flash.data.SQLResult;
  10.     import flash.data.SQLStatement;
  11.     import flash.events.SQLErrorEvent;
  12.     import flash.events.SQLEvent;
  13.     import flash.filesystem.File;
  14.  
  15.     public class CreateTables
  16.     {
  17.  
  18.         private var model:ModelLocator = ModelLocator.getInstance();
  19.  
  20.         private var employeeDAO:EmployeeDAO = new EmployeeDAO();
  21.         private var preferencesDAO:PreferencesDAO = new PreferencesDAO();
  22.  
  23.         private var createEmployeesSQL:SQLStatement;
  24.         private var createPreferencesSQL:SQLStatement;
  25.  
  26.         // check for existance of local database and either open existing or create new tables
  27.         public function init():void{
  28.             var dbFile:File = File.applicationStorageDirectory.resolve("EmployeeDirectory.db");
  29.             if(dbFile.exists) {
  30.                 model.db.addEventListener(SQLEvent.OPEN, statusHandler);
  31.                 model.db.open(dbFile);
  32.             } else {
  33.                 model.db.addEventListener(SQLEvent.OPEN, newDatabaseHandler);
  34.                 model.db.open(dbFile);
  35.             }
  36.         }
  37.  
  38.         // get local data
  39.         private function statusHandler(event:SQLEvent):void {
  40.             employeeDAO.getEmployees();
  41.             preferencesDAO.getUserId();
  42.         }
  43.  
  44.         //  create new tables
  45.         private function newDatabaseHandler(event:SQLEvent):void {
  46.             createEmployeesTable();
  47.             createPreferencesTable();
  48.         }
  49.  
  50.         // create Employees table
  51.         private function createEmployeesTable():void{
  52.             var sqlText:String = "CREATE TABLE Employees(EMAIL TEXT, EMPLOYEE_ID INTEGER PRIMARY KEY, FIRST_NAME TEXT, JOB_TITLE TEXT, LAST_NAME TEXT, USER_ID INTEGER)";
  53.             createEmployeesSQL = new SQLStatement();
  54.             createEmployeesSQL.sqlConnection = model.db;
  55.             createEmployeesSQL.addEventListener(SQLEvent.RESULT, createEmployeesTableResult);
  56.             createEmployeesSQL.addEventListener(SQLErrorEvent.ERROR, statusHandler);
  57.             createEmployeesSQL.text = sqlText;
  58.             createEmployeesSQL.execute();
  59.             model.log +=  sqlText + " \n";
  60.         }
  61.  
  62.         private function createEmployeesTableResult(event:SQLEvent):void{
  63.             model.log += "Employees table created \n";
  64.         }
  65.  
  66.         // Create Preferences table
  67.         private function createPreferencesTable():void{
  68.             var sqlText:String = "CREATE TABLE Preferences(USER_ID INTEGER)";
  69.             createPreferencesSQL = new SQLStatement();
  70.             createPreferencesSQL.sqlConnection = model.db;
  71.             createPreferencesSQL.addEventListener(SQLEvent.RESULT, createPreferencesTableResult);
  72.             createPreferencesSQL.addEventListener(SQLErrorEvent.ERROR, statusHandler);
  73.             createPreferencesSQL.text = sqlText;
  74.             createPreferencesSQL.execute();
  75.             model.log +=  sqlText + " \n";
  76.         }
  77.  
  78.         // get a new unique userId from remote server
  79.         private function createPreferencesTableResult(event:SQLEvent):void{
  80.             model.log += "Preferences table created \n";
  81.             var getUserIdEvent : GetUserIdEvent = new GetUserIdEvent();
  82.           CairngormEventDispatcher.getInstance().dispatchEvent( getUserIdEvent );
  83.         }
  84.  
  85.     }
  86. }

I will post some additional excerpts when I get the time.

Share/Save/Bookmark

Topics: Adobe AIR, Tutorials |

Comments