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 Code Exerpts 1 | Main | Connect.Discover.Enspire »

AIR Embedded Database Code Exerpts 2

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

Here is today’s excerpt. This is the data access class that is used to save and retrieve the userid from the SQLite database. Here is the flow:

When the application launches, the PreferencesDAO class is instantiated. If a userid can not be retrieved from the local database, a Cairngorm event is dispatched to get a new userid from a remote SQL server via ColdFusion. The userid is then saved to the local database using the savePreferences() function.

  1. package com.everythingflex.employeeDirectory.dao
  2. {
  3.     import com.adobe.cairngorm.control.CairngormEventDispatcher;
  4.     import com.everythingflex.employeeDirectory.control.GetUserIdEvent;
  5.     import com.everythingflex.employeeDirectory.model.ModelLocator;
  6.  
  7.     import flash.data.SQLStatement;
  8.     import flash.events.SQLErrorEvent;
  9.     import flash.events.SQLEvent;
  10.     import flash.data.SQLResult;
  11.  
  12.     public class PreferencesDAO
  13.     {
  14.  
  15.         private var model:ModelLocator = ModelLocator.getInstance();
  16.  
  17.         private var savePrefSQL:SQLStatement;
  18.         private var getUserIdSQL:SQLStatement;
  19.  
  20.         private function statusHandler(event:SQLEvent):void {
  21.         //  model.log += event;
  22.         }
  23.  
  24.         // save preferences data
  25.         public function savePreferences(userId:int):void{
  26.             var sqlText:String = "INSERT INTO Preferences" +
  27.             " (USER_ID)" +
  28.             " VALUES(" + "'" + userId + "')"
  29.             savePrefSQL = new SQLStatement();
  30.             savePrefSQL.sqlConnection = model.db;
  31.             savePrefSQL.addEventListener(SQLEvent.RESULT, savePreferencesResult);
  32.             savePrefSQL.addEventListener(SQLErrorEvent.ERROR, statusHandler);
  33.             savePrefSQL.text = sqlText;
  34.             savePrefSQL.execute();
  35.             model.log += sqlText + " \n";
  36.         }
  37.  
  38.         private function savePreferencesResult(event:SQLEvent):void{
  39.             model.log += "add successful \n";
  40.         }
  41.  
  42.         // get userid from local data
  43.         public function getUserId():void{
  44.             var sqlText:String = "SELECT USER_ID FROM Preferences";
  45.             getUserIdSQL = new SQLStatement();
  46.             getUserIdSQL.sqlConnection = model.db;
  47.             getUserIdSQL.addEventListener(SQLEvent.RESULT, getUserIdResult);
  48.             getUserIdSQL.addEventListener(SQLErrorEvent.ERROR, statusHandler);
  49.             getUserIdSQL.text = sqlText;
  50.             getUserIdSQL.execute();
  51.             model.log +=  sqlText + " \n";
  52.         }
  53.  
  54.         // if local userid does not exist, retieve a new userid from remote server
  55.         private function getUserIdResult(event:SQLEvent):void{
  56.             var result:SQLResult = getUserIdSQL.getResult();
  57.             if(result.data.length > 0){
  58.                 model.userId = result.data[0]["USER_ID"];
  59.             } else {
  60.                 getRemoteUserId();
  61.             }
  62.         }
  63.  
  64.         // if connected, retrieve a new userid from remote server
  65.         private function getRemoteUserId():void{
  66.             var getUserIdEvent :GetUserIdEvent = new GetUserIdEvent();
  67.           CairngormEventDispatcher.getInstance().dispatchEvent( getUserIdEvent );
  68.         }
  69.     }
  70.  
  71.  
  72. }

Share/Save/Bookmark

Topics: Adobe AIR, Tutorials |

Comments