Impossible de récupérer des données de la base de données SQLite iOS6.0
-
11-12-2019 - |
Question
Lorsque j'exécute la construction iOS5.0 ou moins, la réponse SQLITE correcte et récupérez les données son fonctionnement bien, mais lorsqu'il est exécuté sur iOS6.0, j'essaie d'extraire des données de ma base de données My.SQLite, mais cela n'exègre pas mon cas.Il entre toujours en tout état.Quelle mauvaise chose que je fais?Je ne suis pas capable d'exécuter mon cas si I.e. if(sqlite3_prepare_v2(database, sqlQuerry, -1, &querryStatement, NULL)==SQLITE_OK).
Pour référence, vérifiez ce code.
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
{
}
sur iOS6.0 Log Impression
sqlite3_prepare_v2 = 1 SQLITE_OK 0
sqlite3_step = 21 SQLITE_ROW 100
sur iOS5.0 Log Impression
sqlite3_prepare_v2 = 0 SQLITE_OK 0
sqlite3_step = 100 SQLITE_ROW 100
La solution
endroit dans l'essentiel cela, nous pouvons donc voir l'erreur qui résulte ..
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));
}
Autres conseils
Essayez de supprimer votre application de votre appareil (ou de votre simulateur), puis nettoyez-vous et construire
Je ne suis pas sûr à 100% mais à ce sujet:
Donc, si vous pouvez changer ceci:
if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, nil)==SQLITE_OK)
whit this:
if(sqlite3_prepare_v2(sqlite, [strQuery UTF8String], -1, &compiledStatement, NULL)==SQLITE_OK)
Je change juste nul avec NULL.Encore une fois, pas sûr de 100% mais seulement cela que je vois dans votre code.J'utilise toujours NULL :)
J'espère que cette aide ...