No se pueden recuperar datos de la base de datos SQLite iOS6.0
-
11-12-2019 - |
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
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 ...