· 8 years ago · May 04, 2018, 07:16 PM
1var db: OpaquePointer?
2 @IBOutlet weak var labelMessage: UILabel!
3
4 //the defaultvalues to store user data
5 let defaultValues = UserDefaults.standard
6
7 @IBOutlet weak var username: UITextField!
8 @IBOutlet weak var password: UITextField!
9
10 @IBAction func Login(_ sender: UIButton) {
11
12 //creating a statement
13 var stmt: OpaquePointer?
14
15 //the insert query
16 let queryString = "SELECT * FROM Employee WHERE username = ? AND password = ? "
17
18 //preparing the query
19 if sqlite3_prepare(db, queryString, -1, &stmt, nil) != SQLITE_OK{
20 let errmsg = String(cString: sqlite3_errmsg(db)!)
21 print("error preparing insert: (errmsg)")
22 return
23 }
24
25 //binding the parameters
26 if sqlite3_bind_text(stmt, 1, username.text!, -1, nil) != SQLITE_OK{
27 let errmsg = String(cString: sqlite3_errmsg(db)!)
28 print("failure binding name: (errmsg)")
29 return
30 }
31 if sqlite3_bind_text(stmt, 2, password.text!, -1, nil) != SQLITE_OK{
32 let errmsg = String(cString: sqlite3_errmsg(db)!)
33 print("failure binding name: (errmsg)")
34 return
35 }
36
37 //executing the query
38 if sqlite3_step(stmt) == SQLITE_ROW {
39 let TableView = self.storyboard?.instantiateViewController(withIdentifier: "TableView") as! TableView
40 self.navigationController?.pushViewController(TableView, animated: true)
41 self.dismiss(animated: false, completion: nil)
42 } else {
43 let errmsg = String(cString: sqlite3_errmsg(db)!)
44 print("Login Failed: (errmsg)")
45 self.labelMessage.text = "Invalid username or password"
46 return
47 }
48 }
49
50override func viewDidLoad() {
51 super.viewDidLoad()
52 let fileURL = try! FileManager.default.url(for: .documentDirectory, in: .userDomainMask, appropriateFor: nil, create: false)
53 .appendingPathComponent("sDB.sqlite")
54 if sqlite3_open(fileURL.path, &db) != SQLITE_OK {
55 print("error opening database")
56 }
57 if sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS Employee (id INTEGER PRIMARY KEY, username TEXT, f_name TEXT, l_name TEXT, password TEXT)", nil, nil, nil) != SQLITE_OK {
58 let errmsg = String(cString: sqlite3_errmsg(db)!)
59 print("error creating table: (errmsg)")
60 }
61}