« AIR Embedded Database Code Exerpts 1 | Main | Connect.Discover.Enspire »
AIR Embedded Database Code Exerpts 2
| By Rich Tretola | June 13, 2007 | Print This Post
|
| 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.
- package com.everythingflex.employeeDirectory.dao
- {
- import com.adobe.cairngorm.control.CairngormEventDispatcher;
- import com.everythingflex.employeeDirectory.control.GetUserIdEvent;
- import com.everythingflex.employeeDirectory.model.ModelLocator;
- import flash.data.SQLStatement;
- import flash.events.SQLErrorEvent;
- import flash.events.SQLEvent;
- import flash.data.SQLResult;
- public class PreferencesDAO
- {
- private var model:ModelLocator = ModelLocator.getInstance();
- private var savePrefSQL:SQLStatement;
- private var getUserIdSQL:SQLStatement;
- private function statusHandler(event:SQLEvent):void {
- // model.log += event;
- }
- // save preferences data
- public function savePreferences(userId:int):void{
- var sqlText:String = "INSERT INTO Preferences" +
- " (USER_ID)" +
- " VALUES(" + "'" + userId + "')"
- savePrefSQL = new SQLStatement();
- savePrefSQL.sqlConnection = model.db;
- savePrefSQL.addEventListener(SQLEvent.RESULT, savePreferencesResult);
- savePrefSQL.addEventListener(SQLErrorEvent.ERROR, statusHandler);
- savePrefSQL.text = sqlText;
- savePrefSQL.execute();
- model.log += sqlText + " \n";
- }
- private function savePreferencesResult(event:SQLEvent):void{
- model.log += "add successful \n";
- }
- // get userid from local data
- public function getUserId():void{
- var sqlText:String = "SELECT USER_ID FROM Preferences";
- getUserIdSQL = new SQLStatement();
- getUserIdSQL.sqlConnection = model.db;
- getUserIdSQL.addEventListener(SQLEvent.RESULT, getUserIdResult);
- getUserIdSQL.addEventListener(SQLErrorEvent.ERROR, statusHandler);
- getUserIdSQL.text = sqlText;
- getUserIdSQL.execute();
- model.log += sqlText + " \n";
- }
- // if local userid does not exist, retieve a new userid from remote server
- private function getUserIdResult(event:SQLEvent):void{
- var result:SQLResult = getUserIdSQL.getResult();
- if(result.data.length > 0){
- model.userId = result.data[0]["USER_ID"];
- } else {
- getRemoteUserId();
- }
- }
- // if connected, retrieve a new userid from remote server
- private function getRemoteUserId():void{
- var getUserIdEvent :GetUserIdEvent = new GetUserIdEvent();
- CairngormEventDispatcher.getInstance().dispatchEvent( getUserIdEvent );
- }
- }
- }
Topics: Adobe AIR, Tutorials |







