Я использую SqliteDatabase в моем проекте. Я вызываю функцию для manuplation данных.Как закрыть базу данных в sqlite в ios?
-(void)updateInspectionMapData2:(NSString *)clientid : (NSString *)inspectionid : (NSString *)status
{
NSLog(@"EIGHT");
NSLog(@"inside update data");
const char *dbpath = [databasePath UTF8String];
if (sqlite3_open(dbpath, &database) == SQLITE_OK)
{
NSArray *checkVal = [self getSubClientDataByInspectionId:inspectionid :clientid];
NSLog(@"check is %@",checkVal);
if(checkVal == nil || [checkVal count] == 0)
{
NSString *querySql=[NSString stringWithFormat:
@"UPDATE inspectioninspectormap SET status=\"%@\" where inspectionid = \"%@\" and clientid =\"%@\" and (status = \"1\" or status = \"2\")",status,inspectionid,clientid];
NSLog(@"sql is %@",querySql);
const char *sql=[querySql UTF8String];
if(sqlite3_prepare_v2(database,sql, -1, &statement, NULL) == SQLITE_OK)
{
if(SQLITE_DONE != sqlite3_step(statement))
{
NSLog(@"Error while updating. '%s'", sqlite3_errmsg(database));
}
else
{
sqlite3_reset(statement);
NSLog(@"Update done successfully!");
}
}
sqlite3_finalize(statement);
}
}
sqlite3_close(database);
}
Скажите, пожалуйста, это правильный путь, чтобы закрыть SQLITE database.I не уверен, я прав, потому что позже я получаю ошибку невозможно открыть базу данных.?
Скажите, пожалуйста, когда использовать ** sqlite3_reset **. У меня нет опыта использования SQLite, так что я просто использовал его. – Techiee
См. [Документация] (http://www.sqlite.org/c3ref/reset.html). Он используется, когда вам нужно снова использовать подготовленное заявление.Вы не используете их повторно, поэтому вам просто нужно его завершить, а не сбросить. – rmaddy
Под каким условием мне нужно повторно использовать инструкцию sqlite для подготовки. Скажите, пожалуйста, – Techiee