· 8 years ago · Feb 15, 2018, 11:44 AM
1import UIKit
2import SQLite
3import SQLite3
4
5@available(iOS 11.0, *)
6class FormCreateViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource, UITextViewDelegate {
7
8var heroList = [FormDatabase]()
9var db: OpaquePointer?
10func databaseSet() {
11}
12
13var formnameV = String()
14var formdescriptionV = String()
15var formcategoryV = String()
16var formdateV = "date"
17
18let pickerData = ["Check In", "Check Out"/*, "Reports", "Edit"*/]
19var selected = String()
20
21@IBOutlet weak var templateNameText : UITextField!
22@IBOutlet weak var templateDescText : UITextView!
23@IBOutlet weak var chekPicker: UIPickerView!
24
25@IBAction func createTempAct(_ sender: Any) {
26
27 if templateNameText.text?.isEmpty == false && templateDescText.text.isEmpty == false && selected.isEmpty == false {
28
29 //getting values from textfields
30 // formnameV = (templateNameText.text?.trimmingCharacters(in: .whitespacesAndNewlines))!
31 // formdescriptionV = (templateDescText.text?.trimmingCharacters(in: .whitespacesAndNewlines))!
32
33 formnameV = templateNameText.text!
34 formdescriptionV = templateDescText.text!
35
36 formcategoryV = self.selected//.trimmingCharacters(in: .whitespacesAndNewlines)
37 formdateV = "date"
38 print(formnameV, formdescriptionV, formcategoryV, formdateV)
39
40 var stmt: OpaquePointer?
41 let queryString = "INSERT INTO FormTable (formname, formdescription, formcategory, formdate) VALUES (?,?,?,?)"
42 //preparing the query
43 if sqlite3_prepare(db, queryString, -1, &stmt, nil) != SQLITE_OK{
44 let errmsg = String(cString: sqlite3_errmsg(db)!)
45 print("error preparing insert: (errmsg)")
46 return
47 }
48
49 //binding the parameters
50 if sqlite3_bind_text(stmt, 1, formnameV, -1, nil) != SQLITE_OK{
51 let errmsg = String(cString: sqlite3_errmsg(db)!)
52 print("failure binding name: (errmsg)")
53 return
54 }
55
56 if sqlite3_bind_text(stmt, 2, formdescriptionV, -1, nil) != SQLITE_OK{
57 let errmsg = String(cString: sqlite3_errmsg(db)!)
58 print("failure binding name: (errmsg)")
59 return
60 }
61
62 if sqlite3_bind_text(stmt, 3, formcategoryV, -1, nil) != SQLITE_OK{
63 let errmsg = String(cString: sqlite3_errmsg(db)!)
64 print("failure binding name: (errmsg)")
65 return
66 }
67
68 if sqlite3_bind_text(stmt, 4, formdateV, -1, nil) != SQLITE_OK{
69 let errmsg = String(cString: sqlite3_errmsg(db)!)
70 print("failure binding name: (errmsg)")
71 return
72 }
73
74 //executing the query to insert values
75 if sqlite3_step(stmt) != SQLITE_DONE {
76 let errmsg = String(cString: sqlite3_errmsg(db)!)
77 print("failure inserting hero: (errmsg)")
78 return
79 }
80
81 //emptying the textfields
82 templateNameText.text = ""
83 templateDescText.text = ""
84 self.selected = ""
85
86 // self.readValues()
87
88 print()
89 //displaying a success message
90 print("Herro saved successfully")
91 self.okAlert()
92 // self.readValues()
93 }
94else {
95self.oopAlert()
96}
97}
98
99
100@IBOutlet weak var menu: UIBarButtonItem!
101@IBAction func menu(_ sender: Any) {
102 // self.dismiss(animated: true, completion: nil)
103 self.MovetoHome()
104 print("cancel pressed")
105}
106
107
108
109func readValues(){
110
111 //first empty the list of heroes
112 //heroList.removeAll()
113
114 //this is our select query
115 let queryString = "SELECT * FROM FormTable"
116
117 //statement pointer
118 var stmt:OpaquePointer?
119
120 //preparing the query
121 if sqlite3_prepare(db, queryString, -1, &stmt, nil) != SQLITE_OK{
122 let errmsg = String(cString: sqlite3_errmsg(db)!)
123 print("error preparing insert: (errmsg)")
124 return
125 }
126
127 //traversing through all the records
128 while(sqlite3_step(stmt) == SQLITE_ROW){
129 let formidC = sqlite3_column_int(stmt, 0)
130 let formnameC = String(cString: sqlite3_column_text(stmt, 1))
131 let formdescriptionC = String(cString: sqlite3_column_text(stmt, 2))
132 let formcategoryC = String(cString: sqlite3_column_text(stmt, 3))
133 let formdateC = String(cString: sqlite3_column_text(stmt, 4))
134
135 //adding values to list
136
137 heroList.append(FormDatabase(formid: Int64(Int(formidC)), formname: String(describing: formnameC), formdescription: String(describing: formdescriptionC), formcategory: String(describing: formcategoryC), formdate: String(describing : formdateC)))
138 print(heroList)
139 }
140
141}
142
143
144override func viewDidLoad() {
145 super.viewDidLoad()
146
147
148 let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
149 .appendingPathComponent("StephencelisDB.sqlite")
150
151
152 if sqlite3_open(fileURL.path, &db) != SQLITE_OK {
153 print("error opening database")
154 }
155
156 if sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS FormTable (id INTEGER PRIMARY KEY AUTOINCREMENT, formname TEXT, formdescription TEXT, formcategory TEXT, formdate TEXT)", nil, nil, nil) != SQLITE_OK {
157 let errmsg = String(cString: sqlite3_errmsg(db)!)
158 print("error creating table: (errmsg)")
159 }
160
161 self.view.addSubview(chekPicker)
162 self.view.addSubview(templateNameText)
163 self.view.addSubview(templateDescText)
164
165 self.readValues()
166
167}
168
169}