i am using FMDatabase in my IOS App to access SQLITE database.
i have created a class called ModelManager and all is working fine. i am able to select, update, ...
but i am not sure if what i am doing is right so please help me understand this.
in Model Manager class:
let sharedInstance = ModelManager()
class ModelManager: NSObject {
var database: FMDatabase? = nil
class func getInstance() -> ModelManager
{
if(sharedInstance.database == nil)
{
sharedInstance.database = FMDatabase(path: Util.getPath(GlobalVariables.DatabaseName))
sharedInstance.database?.logsErrors()
sharedInstance.database?.crashOnErrors()
}
return sharedInstance
}
func ExecQuery(Query: String, MethodCalling: String) -> Bool
{
sharedInstance.database!.open()
let isExecuted = sharedInstance.database!.executeUpdate(Query, withArgumentsInArray: nil)
//let isExecuted = ModelManager.getInstance().database?.executeUpdate(Query, withArgumentsInArray: nil)
sharedInstance.database!.close()
if(isExecuted == false)
{
//error
}
return isExecuted
}
}
when i want to access the database i do the following:
for selecting:
sharedInstance.database!.open()
let resultSet: FMResultSet! = ModelManager.getInstance().database?.executeQuery(Query, withArgumentsInArray: nil)
if (resultSet != nil)
{
while resultSet.next()
{
print("here: \(lastLoggedInUser)")
lastLoggedInUser = resultSet.stringForColumn("FTLOGIN")
}
}
sharedInstance.database!.close()
for executing queries (update, insert, delete...)
ModelManager.getInstance().ExecQuery(Query, MethodCalling: "LoginService")
Now my question is
if i had to perform a selection query and while fetching data, i want to execute a query, how can i do that?
sharedInstance.database!.open()
let resultSet: FMResultSet! = ModelManager.getInstance().database?.executeQuery(Query, withArgumentsInArray: nil)
if (resultSet != nil)
{
while resultSet.next()
{
ModelManager.getInstance().ExecQuery(SomethingRetreived, MethodCalling: "LoginService")
}
}
sharedInstance.database!.close()
Aucun commentaire:
Enregistrer un commentaire