I Could not find out a good sample project of AIR and SQLite ,So here I am posting Flex source Code .
In this Sample Project I created Database in SQLite and populated data in DataGrid . You can perform Insert and Delete Operation .
you just need to create one AIR Project using Flex Builder then copy and paste this source code .
AirSQLiteSample.MXML
1: <?xml version="1.0" encoding="utf-8"?>2: <mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"3: horizontalAlign="center" verticalAlign="middle"4: creationComplete="init();">5:6: <mx:Script>7: <![CDATA[8: import mx.events.DataGridEvent;9: import mx.collections.ArrayCollection;10: import mx.controls.Alert;11: import mx.managers.CursorManager;12: import flash.data.SQLResult;13: import flash.filesystem.File;14: import flash.data.SQLStatement;15: import flash.data.SQLConnection;16: import flash.events.SQLEvent;17: import flash.events.SQLErrorEvent;18:19:20: private var userDB:SQLConnection;21: private var userDBFile:File;22: private var dbStatement:SQLStatement;23:24:25: // The birthdate parameter's name and value:26: private static const PARAM_BIRTHDATE:String = ":birthdate";27: private static const BIRTHDATE:Date = new Date(1983,3,15);28: [Bindable]29: private var userData:ArrayCollection = new ArrayCollection();30:31: private static const CREATE_USER_SQL:String =32: "CREATE TABLE user(" + "\n" +33: " user_id INTEGER PRIMARY KEY AUTOINCREMENT," + "\n" +34: " first_name TEXT NOT NULL," + "\n" +35: " last_name TEXT NOT NULL," + "\n" +36: " address TEXT," + "\n" +37: " birthday DATE," + "\n" +38: " notes TEXT" + "\n" +39: ")";40:41: private static const POPULATE_USER_SQL:String =42: "INSERT INTO user (first_name, last_name, address, birthday, notes)" + "\n" +43: "SELECT 'Neeraj', 'Kanthariya', 'Bangalore India', " + PARAM_BIRTHDATE + ", 'SoftWare Engineer'";44:45: private function init():void46: {47: userDBFile = File.applicationStorageDirectory.resolvePath("neeraj.db");48: userDB = new SQLConnection();49: CursorManager.setBusyCursor();50:51: if (!userDBFile.exists)52: {53: userDB.addEventListener(SQLEvent.OPEN, onUserDBCreateOpend);54: userDB.addEventListener(SQLErrorEvent.ERROR, onUserDBError);55: userDB.open(userDBFile);56: CursorManager.removeBusyCursor();57: }58: else59: {60: userDB.addEventListener(SQLEvent.OPEN, selectAllFromUser);61: userDB.addEventListener(SQLErrorEvent.ERROR, onUserDBError);62: userDB.openAsync(userDBFile,SQLMode.UPDATE);63: CursorManager.removeBusyCursor();64: }65: }66:67: //create user table68: private function onUserDBCreateOpend(event:SQLEvent):void69: {70: if (event.type == "open")71: {72: dbStatement = new SQLStatement();73: dbStatement.sqlConnection = userDB;74: dbStatement.text = CREATE_USER_SQL;75: dbStatement.addEventListener(SQLEvent.RESULT, createTableResultHandler);76: dbStatement.addEventListener(SQLErrorEvent.ERROR, onUserDBError);77: dbStatement.execute();78:79: }80: }81: // papulate static data in user table82: private function createTableResultHandler(event:SQLEvent=null):void{83: if(event!= null){84: var stmt:SQLStatement = event.target as SQLStatement;85: if (stmt == null) { return; }86:87: stmt.removeEventListener(SQLEvent.RESULT, createTableResultHandler);88: stmt.removeEventListener(SQLErrorEvent.ERROR, onUserDBError);89: }90:91: dbStatement = new SQLStatement();92: dbStatement.sqlConnection =userDB;93: dbStatement.text = POPULATE_USER_SQL;94: dbStatement.parameters[PARAM_BIRTHDATE] = BIRTHDATE;95: dbStatement.addEventListener(SQLEvent.RESULT, populateTableHandler);96: dbStatement.addEventListener(SQLErrorEvent.ERROR, onUserDBError);97: dbStatement.execute();98: }99: // call onUserDBUpdateOpened100: private function populateTableHandler(event:SQLEvent):void{101: var stmt:SQLStatement = event.target as SQLStatement;102: if (stmt == null) { return; }103:104: stmt.removeEventListener(SQLEvent.RESULT, populateTableHandler);105: stmt.removeEventListener(SQLErrorEvent.ERROR, onUserDBError);106:107: selectAllFromUser();108: }109:110: // retrive data from user table111: private function selectAllFromUser(event:SQLEvent=null):void{112: dbStatement = new SQLStatement();113: dbStatement.sqlConnection = userDB;114: dbStatement.text = "select * from user";115: dbStatement.addEventListener(SQLEvent.RESULT, resultHandler);116: dbStatement.addEventListener(SQLErrorEvent.ERROR, onUserDBError);117: dbStatement.execute();118: }119: // insert data in dataprovider120: private function resultHandler(event:SQLEvent):void121: {122: dbStatement.removeEventListener(SQLEvent.RESULT, resultHandler);123: dbStatement.removeEventListener(SQLErrorEvent.ERROR, onUserDBError);124: var result:SQLResult = dbStatement.getResult();125: userData.removeAll();126: for each (var row:Object in result.data)127: {128: userData.addItem(row);129: }130: }131:132: // insert data in user table133: private function insertUser():void{134: dbStatement = new SQLStatement();135: dbStatement.sqlConnection = userDB;136: dbStatement.text = "insert into user(first_name,last_name,address,birthday,notes)"+137: "values(:first_name,:last_name,:address,:birthday,:notes)";138: dbStatement.parameters[":first_name"] = firstNameTextInput.text;139: dbStatement.parameters[":last_name"] = lastNameTextInput.text;140: dbStatement.parameters[":address"] = addressTextInput.text;141: dbStatement.parameters[":birthday"] = birthday.selectedDate;142: dbStatement.parameters[":notes"] = note.text;143:144: dbStatement.addEventListener(SQLEvent.RESULT, insertUserHandler);145: dbStatement.addEventListener(SQLErrorEvent.ERROR, onUserDBError);146: dbStatement.execute();147: }148: // call onUserDBUpdateOpened149: private function insertUserHandler(event:SQLEvent):void{150: dbStatement.removeEventListener(SQLEvent.RESULT, insertUserHandler);151: dbStatement.removeEventListener(SQLErrorEvent.ERROR, onUserDBError);152: selectAllFromUser();153: }154: // delete data from user table155: private function DeleteUser():void{156: dbStatement = new SQLStatement();157: dbStatement.sqlConnection = userDB;158: //dbStatement.text = "DROP TABLE user";159: dbStatement.text = "delete from user where user_id ="+usersDataGrid.selectedItem["user_id"];160: dbStatement.addEventListener(SQLEvent.RESULT, deleteUserHandler);161: dbStatement.addEventListener(SQLErrorEvent.ERROR, onUserDBError);162: dbStatement.execute();163:164: }165: // call onUserDBUpdateOpened166: private function deleteUserHandler(event:SQLEvent):void{167: dbStatement.removeEventListener(SQLEvent.RESULT, deleteUserHandler);168: dbStatement.removeEventListener(SQLErrorEvent.ERROR, onUserDBError);169: selectAllFromUser();170: }171:172:173:174: private function onUserDBError(event:SQLErrorEvent):void175: {176: Alert.show(event.toString());177: }178:179: ]]>180: </mx:Script>181:182: <mx:VBox horizontalScrollPolicy="off" verticalScrollPolicy="off">183: <!-- Form -->184: <mx:Form>185: <mx:FormHeading label="AIR SQLITE INSERT DELETE OPERATION SAMPLE"/>186: <mx:FormItem label="First Name:">187: <mx:TextInput id="firstNameTextInput"/>188: </mx:FormItem>189: <mx:FormItem label="Last Name:">190: <mx:TextInput id="lastNameTextInput"/>191: </mx:FormItem>192: <mx:FormItem label="Address">193: <mx:TextInput id="addressTextInput"/>194: </mx:FormItem>195: <mx:FormItem label="Birthday:">196: <mx:DateField id="birthday" editable="true" yearNavigationEnabled="true" width="120"/>197: </mx:FormItem>198: <mx:FormItem label="Notes">199: <mx:TextArea id="note"/>200: </mx:FormItem>201: </mx:Form>202: <mx:HBox>203: <mx:Button label="Insert User" click="insertUser()"/>204: <mx:Button label="Delete User" click="DeleteUser()"/>205: </mx:HBox>206: </mx:VBox>207:208: <!-- Results -->209: <mx:DataGrid id="usersDataGrid" dataProvider="{userData}" width="100%">210: <mx:columns>211: <mx:DataGridColumn headerText="First Name" dataField="first_name"/>212: <mx:DataGridColumn headerText="Last Name" dataField="last_name"/>213: <mx:DataGridColumn headerText="Address" dataField="address"/>214: <mx:DataGridColumn headerText="BirthDay" dataField="birthday"/>215: <mx:DataGridColumn headerText="Notes" dataField="notes"/>216: </mx:columns>217: </mx:DataGrid>218: </mx:WindowedApplication>219:
Please let me know If I am unclear .
Neeraj
0 comments:
Post a Comment