· 9 years ago · Sep 16, 2017, 02:40 AM
1fishySQL.as:
2/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
3
4package {
5 import flash.display.Sprite;
6 import flash.display.StageAlign;
7 import flash.display.StageScaleMode;
8 import flash.events.MouseEvent;
9
10 import qnx.ui.buttons.LabelButton;
11 import qnx.ui.listClasses.ListSelectionMode;
12 import qnx.ui.listClasses.TileList;
13 import qnx.ui.text.Label;
14 import qnx.ui.text.TextInput;
15
16 [SWF(width="1024", height="600", backgroundColor="#424242", frameRate="30")]
17 public class fishySQL extends Sprite {
18 private var sqlData:SQLFunctions;
19
20 private var inputUSERNAME:TextInput;
21 private var inputUSERPASSWORD:TextInput;
22 private var inputUSERDESCRIPTION:TextInput;
23
24 private var userList:TileList;
25
26 public function fishySQL() {
27 super();
28
29 // support autoOrients
30 stage.align = StageAlign.TOP_LEFT;
31 stage.scaleMode = StageScaleMode.NO_SCALE;
32
33 sqlData = new SQLFunctions();
34 theInputs();
35 }
36 private function theInputs():void {
37 inputUSERNAME = new TextInput();
38 inputUSERNAME.prompt = "User Name";
39 inputUSERNAME.setPosition(65, 60);
40 addChild(inputUSERNAME);
41
42 inputUSERPASSWORD = new TextInput();
43 inputUSERPASSWORD.prompt = "User Password";
44 inputUSERPASSWORD.setPosition(65, 100);
45 addChild(inputUSERPASSWORD);
46
47 inputUSERDESCRIPTION = new TextInput();
48 inputUSERDESCRIPTION.prompt = "User Description";
49 inputUSERDESCRIPTION.setPosition(65, 140);
50 addChild(inputUSERDESCRIPTION);
51
52 var submitData:LabelButton = new LabelButton();
53 submitData.label = "Save";
54 submitData.setPosition(600, 60);
55 submitData.addEventListener(MouseEvent.CLICK, writeData);
56 addChild(submitData);
57
58 userList = new TileList();
59 userList.dataProvider = sqlData.getTableData();
60 userList.setPosition(65, 200);
61 userList.setSize(894, 400);
62 userList.columnCount = 3;
63 userList.columnWidth = 300;
64 userList.rowCount = sqlData.getCount();
65 userList.rowHeight = 45;
66 userList.cellPadding = 1;
67 userList.selectionMode = ListSelectionMode.SINGLE;
68 addChild(userList);
69 }
70 private function writeData(e:MouseEvent):void {
71 sqlData.writeData(inputUSERNAME.text, inputUSERPASSWORD.text, inputUSERDESCRIPTION.text);
72 inputUSERNAME.text = "";
73 inputUSERPASSWORD.text = "";
74 inputUSERDESCRIPTION.text = "";
75 }
76 private function deleteData(e:MouseEvent):void {
77 sqlData.deleteData(userList.selectedIndex);
78 }
79 }
80}
81
82/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
83SQLFunctions.as
84/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
85package {
86 import flash.data.SQLConnection;
87 import flash.data.SQLResult;
88 import flash.data.SQLStatement;
89 import flash.filesystem.File;
90
91 import qnx.ui.data.DataProvider;
92
93 public class SQLFunctions {
94 private var dbName:String = "fishySQL.db";
95 private var dbFile:File = File.applicationStorageDirectory.resolvePath(dbName);
96 private var dbConn:SQLConnection;
97 private var dbSTMT:SQLStatement;
98 private var sqlResult:SQLResult;
99
100 private var databaseDP:DataProvider;
101
102 private var firstRun:Boolean;
103 private var totalRows:int;
104
105 public function SQLFunctions() {
106 if (!dbFile.exists) {
107 firstRun = true;
108 }
109 createDB();
110 }
111 public function createDB():void {
112 createConnection();
113 dbSTMT.text = "CREATE TABLE IF NOT EXISTS USERTABLE (USER_ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
114 "USERNAME TEXT, " +
115 "USERPASSWORD TEXT, " +
116 "USERDESCRIPTION TEXT" +
117 ")";
118 dbSTMT.execute();
119 if (firstRun) {
120 dbSTMT.text = "INSERT INTO USERTABLE (" +
121 "USERNAME, " +
122 "USERPASSWORD, " +
123 "USERDESCRIPTION" +
124 ") VALUES (?, ?, ?)";
125 dbSTMT.parameters[0] = "John Doe";
126 dbSTMT.parameters[1] = "p455w0rd";
127 dbSTMT.parameters[2] = "PW IS BAD!";
128 dbSTMT.execute();
129 }
130 closeConnection();
131 }
132 public function createConnection():void {
133 dbConn = new SQLConnection();
134 dbConn.open(dbFile);
135 dbSTMT = new SQLStatement();
136 dbSTMT.sqlConnection = dbConn;
137 }
138 public function closeConnection():void {
139 dbConn.close();
140 }
141 public function getTableData():DataProvider {
142 createConnection();
143 dbSTMT.text = "SELECT * FROM USERTABLE";
144 dbSTMT.execute();
145 sqlResult = dbSTMT.getResult();
146 totalRows = sqlResult.data.length;
147 databaseDP = new DataProvider();
148 for each(var obj:Object in sqlResult.data){
149 if(obj != null){
150 databaseDP.addItem({label:obj["USERNAME"]});
151 databaseDP.addItem({label:obj["USERPASSWORD"]});
152 databaseDP.addItem({label:obj["USERDESCRIPTION"]});
153 }
154 }
155 return databaseDP;
156 }
157 public function getCount():int {
158 return totalRows;
159 }
160 public function writeData(inputUN:String, inputUP:String, inputUD:String):void {
161 createConnection();
162 dbSTMT.text = "INSERT INTO USERTABLE (" +
163 "USERNAME, " +
164 "USERPASSWORD, " +
165 "USERDESCRIPTION" +
166 ") VALUES (?, ?, ?)";
167 dbSTMT.parameters[0] = inputUN;
168 dbSTMT.parameters[1] = inputUP;
169 dbSTMT.parameters[2] = inputUD;
170 dbSTMT.execute();
171 closeConnection();
172 }
173 public function deleteData(delID:int):void {
174 createConnection();
175 dbSTMT.text = "DELETE FROM USERTABLE WHERE USER_ID = " + delID + "";
176 dbSTMT.execute();
177 closeConnection();
178 }
179 }
180}