· 9 years ago · Sep 16, 2017, 05:56 AM
1/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
2 fishySQL.as
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 var delData:LabelButton = new LabelButton();
59 delData.label = "Delete";
60 delData.setPosition(600, 110);
61 delData.addEventListener(MouseEvent.CLICK, deleteData);
62 addChild(delData);
63
64 userList = new TileList();
65 userList.dataProvider = sqlData.getTableData();
66 userList.setPosition(65, 200);
67 userList.setSize(894, 400);
68 userList.columnCount = 3;
69 userList.columnWidth = 300;
70 userList.rowCount = sqlData.getCount();
71 userList.rowHeight = 45;
72 userList.cellPadding = 1;
73 userList.selectionMode = ListSelectionMode.SINGLE;
74 addChild(userList);
75 }
76 private function writeData(e:MouseEvent):void {
77 sqlData.writeData(inputUSERNAME.text, inputUSERPASSWORD.text, inputUSERDESCRIPTION.text);
78 inputUSERNAME.text = "";
79 inputUSERPASSWORD.text = "";
80 inputUSERDESCRIPTION.text = "";
81 }
82 private function deleteData(e:MouseEvent):void {
83 sqlData.removeRecord(userList.selectedIndex);
84 }
85 }
86}
87
88/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
89 SQLFunctions.as
90/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/
91package {
92 import flash.data.SQLConnection;
93 import flash.data.SQLResult;
94 import flash.data.SQLStatement;
95 import flash.filesystem.File;
96
97 import qnx.ui.data.DataProvider;
98
99 public class SQLFunctions {
100 private var dbName:String = "fishySQL.db";
101 private var dbFile:File = File.applicationStorageDirectory.resolvePath(dbName);
102 private var dbConn:SQLConnection;
103 private var dbSTMT:SQLStatement;
104 private var sqlResult:SQLResult;
105
106 private var databaseDP:DataProvider;
107
108 private var totalRows:int;
109
110 public function SQLFunctions() {
111 if (!dbFile.exists) {
112 createDB()
113 }
114 }
115 public function createDB():void {
116 createConnection();
117 trace("FIRST RUN!")
118 dbSTMT.text = "CREATE TABLE IF NOT EXISTS USERTABLE (USER_ID INTEGER PRIMARY KEY AUTOINCREMENT, " +
119 "USERNAME TEXT, " +
120 "USERPASSWORD TEXT, " +
121 "USERDESCRIPTION TEXT" +
122 ")";
123 dbSTMT.execute();
124 dbSTMT.text = "INSERT INTO USERTABLE (" +
125 "USERNAME, " +
126 "USERPASSWORD, " +
127 "USERDESCRIPTION" +
128 ") VALUES (?, ?, ?)";
129 dbSTMT.parameters[0] = "John Doe";
130 dbSTMT.parameters[1] = "p455w0rd";
131 dbSTMT.parameters[2] = "PW IS BAD!";
132 dbSTMT.execute();
133 closeConnection();
134 }
135 public function createConnection():void {
136 dbConn = new SQLConnection();
137 dbConn.open(dbFile);
138 dbSTMT = new SQLStatement();
139 dbSTMT.sqlConnection = dbConn;
140 }
141 public function closeConnection():void {
142 dbConn.close();
143 }
144 public function getTableData():DataProvider {
145 createConnection();
146 dbSTMT.text = "SELECT * FROM USERTABLE";
147 dbSTMT.execute();
148 sqlResult = dbSTMT.getResult();
149 totalRows = sqlResult.data.length;
150 databaseDP = new DataProvider();
151 for each(var obj:Object in sqlResult.data){
152 if(obj != null){
153 databaseDP.addItem({label:obj["USERNAME"]});
154 databaseDP.addItem({label:obj["USERPASSWORD"]});
155 databaseDP.addItem({label:obj["USERDESCRIPTION"]});
156 }
157 }
158 return databaseDP;
159 }
160 public function getCount():int {
161 return totalRows;
162 }
163 public function writeData(inputUN:String, inputUP:String, inputUD:String):void {
164 createConnection();
165 dbSTMT.text = "INSERT INTO USERTABLE (" +
166 "USERNAME, " +
167 "USERPASSWORD, " +
168 "USERDESCRIPTION" +
169 ") VALUES (?, ?, ?)";
170 dbSTMT.parameters[0] = inputUN;
171 dbSTMT.parameters[1] = inputUP;
172 dbSTMT.parameters[2] = inputUD;
173 dbSTMT.execute();
174 closeConnection();
175 }
176 public function removeRecord(delID:int):void {
177 trace("I GOT HERE!");
178 createConnection();
179 trace(dbSTMT.text = "DELETE FROM USERTABLE WHERE USER_ID = " + delID + "");
180 dbSTMT.execute();
181 closeConnection();
182
183 }
184 }
185}