Accessing data from local database in fmdb

234 Views Asked by At

I want to retrieve data from my local database SingUp.db but I am unable to fetch data from there.

import Foundation

var shareInstance = DatabaseManager()

class DatabaseManager : NSObject {
    var database:FMDatabase? = nil

    class func getInstance() -> DatabaseManager {
        if shareInstance.database == nil {
            shareInstance.database =  FMDatabase(path: Util.getPath("SignUp.db"))
        }
         return shareInstance

    }

    func saveData (_ ModelInfo : SignupModl) -> Bool {
        shareInstance.database?.open()
        let isSave = shareInstance.database?.executeUpdate("INSERT INTO SignUp (fname,lname,phone,email) values (?,?,?,?)", withArgumentsIn: [ModelInfo.fname,ModelInfo.lname,ModelInfo.phone,ModelInfo.email])
        shareInstance.database?.close()
        return isSave!
    }

    // Self playing with the code
    func deleteData (_ ModelInfo : SignupModl) -> Bool {
        shareInstance.database?.open()
        let isDelet = shareInstance.database?.executeUpdate("DELETE FROM SignUp WHERE Id = 1;"
, withArgumentsIn: [ModelInfo.fname,ModelInfo.lname,ModelInfo.phone,ModelInfo.email])
        shareInstance.database?.close()
        return isDelet!
    }

    //UPDATE Students
    //SET DepartmentId = 3
    //WHERE StudentId = 6;

    func updateData (_ ModelInfo : SignupModl ) -> Bool {
        shareInstance.database?.open()
        let isUpdate = shareInstance.database?.executeUpdate("UPDATE SignUp SET phone = 1122  WHERE id = 6; ", withArgumentsIn: [ModelInfo.phone])
        shareInstance.database?.close()
        return isUpdate!
    }

    // but how to retrieve the data ???????????????????    

I need code for my last comments. How do I retrieve data from a local data base?

1

There are 1 best solutions below

0
jay patel On

To Fetch Data From Database you need to call query and loop through all data.

let contactDB = FMDatabase(path: databasePath as String)

if (contactDB?.open())! {
    let querySQL = "SELECT * FROM SignUp"    
    let results:FMResultSet? = contactDB?.executeQuery(querySQL, withArgumentsIn: nil)
     while result.next() == true {
         print(results?.string(forColumn: "email"))
         // Get All Your Data Here
    }
    contactDB?.close()
} else {
    print("Error: \(contactDB?.lastErrorMessage())")
}