Pregunta

Cuando ejecuto construir iOS5.0 o menos, entonces SQLite Respuesta correcta y recupere los datos de su trabajo, pero cuando se ejecuta en iOS6.0, estoy tratando de obtener datos de la base de datos My.SQLite, pero no está ejecutando mi caso.Siempre entra en condiciones.¿Qué cosa incorrecta estoy haciendo?No puedo ejecutar mi caso si el caso, if(sqlite3_prepare_v2(database, sqlQuerry, -1, &querryStatement, NULL)==SQLITE_OK).

Para verificar la referencia este código.

NSLog(@"sqlite3_prepare_v2 = %d SQLITE_OK %d ",sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil),SQLITE_OK);

    if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)
    {

        NSLog(@"sqlite3_step = %d SQLITE_ROW %d ",sqlite3_step(compiledStatement),SQLITE_ROW);
        while (sqlite3_step(compiledStatement)==SQLITE_ROW)
        {           if(sqlite3_column_text(compiledStatement, 2) != nil)
                modelObj.Name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];

        }
    }
    else
    {

    }

en iOS6.0 LOG PRINT

 sqlite3_prepare_v2 = 1 SQLITE_OK 0   
 sqlite3_step = 21 SQLITE_ROW 100 

en iOS5.0 LOG PRINT

sqlite3_prepare_v2 = 0 SQLITE_OK 0  
sqlite3_step = 100 SQLITE_ROW 100 

¿Fue útil?

Solución

Lugar en el otrolo, así que podemos ver el error que está resultando.

if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)
{

    NSLog(@"sqlite3_step = %d SQLITE_ROW %d ",sqlite3_step(compiledStatement),SQLITE_ROW);
    while (sqlite3_step(compiledStatement)==SQLITE_ROW)
    {           if(sqlite3_column_text(compiledStatement, 2) != nil)
        modelObj.Name = [NSString stringWithUTF8String:(char *)sqlite3_column_text(compiledStatement, 2)];

    }
}
else{
    //error
    NSLog(@"Failed to open database. Error: %s",sqlite3_errmsg(database));
}

Otros consejos

Intente eliminar su aplicación de su dispositivo (o simulador), luego limpie y compite

No estoy 100% seguro, pero con respecto a esto: null es un void * , nil es una ID

Entonces, si puedes cambiar esto:

if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)

whit esto:

if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, NULL)==SQLITE_OK)

Solo cambio nil con nulo.Nuevamente, no es 100% seguro, pero solo esto veo en su código.Siempre uso NULL :)

Espero que esta ayuda ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top