sqlite3_step()不返回SQLITE_OK

时间:2015-01-28 18:22:45

标签: sqlite

我有一个数据库,这是我的proyect文件localDB.db我想要更新一些表的信息,因为我的aplication的代码我使用的方法如下:

-(void)establecePerfil:(int)idPerfil{

    while ([Utilidades consultaCargandoDatosDB]) {
        [NSThread sleepForTimeInterval:1.0];
    }
    [Utilidades cargandoDatos:YES];

    //perfil = [Perfil getInstance];
    [self cargarBaseDeDatos];

    NSLog(@"entre en establecer perfik");
    sqlite3 *dataBase;
    sqlite3_stmt *sentencia;
    if(sqlite3_open([self.dataBasePath UTF8String], &dataBase)==SQLITE_OK){
        NSLog(@"entre en establecer perfik 2");

        NSString *sql = [NSString stringWithFormat:@"UPDATE perfiles SET \"seleccionado\"= 1, \"completado\"=0 WHERE \"id\"= %d", idPerfil];
        if(sqlite3_prepare_v2(dataBase, [sql UTF8String], -1, &sentencia, NULL)==SQLITE_OK){
            sqlite3_reset(sentencia);
            if(sqlite3_step(sentencia)==SQLITE_OK){
                NSLog(@"set profile OK");

            }
            else{
              //  NSAssert1(0, @"Error while selecting. '%s'", sqlite3_errmsg(dataBase));
            NSLog( @"Save Error: %s", sqlite3_errmsg(dataBase) );
                NSLog(@"%i", sqlite3_extended_errcode(dataBase));
                NSLog(@"%i",sqlite3_errcode(dataBase));
            }


        }
       sqlite3_finalize(sentencia);
    }else{
        NSLog(@"No se ha abierto la base de datos");
    }

    sqlite3_close(dataBase);


    [Utilidades cargandoDatos:NO];
}

我想,我在sqlite3_step(sentencia)中遇到了问题,因为在else条件之后出现的代码错误是101引用SQLITE_DONE所以我不知道这意味着这个。

1 个答案:

答案 0 :(得分:0)

documentation表示SQLITE_DONE是正确的(并且SQLITE_OK不会)。