Weird stuff. I'm querying a small SQLite database. I want to get random result from it. It works quite well, but after about 10-15 queries, I get stuck on the same results. I must obviously be missing something, though I can't figure out what. Here's some code showing you the method I'm calling over and over :
-(NSString*)setBtnImage:(UIButton*) btn{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"database.sqlite"];
NSString *result;
NSString *resultTemp;
if (sqlite3_open([path UTF8String], &database) == SQLITE_OK){
const char *sql = "SELECT * FROM main ORDER BY RANDOM() LIMIT 1;";
sqlite3_stmt *searchStatement;
if(sqlite3_prepare_v2(database, sql, -1, &searchStatement, NULL) == SQLITE_OK){
while (sqlite3_step(searchStatement) == SQLITE_ROW) {
NSString *mot = [NSString stringWithUTF8String:(char *)sqlite3_column_text(searchStatement, 1)];
NSString *nom_fichier = [NSString stringWithUTF8String:(char *)sqlite3_column_text(searchStatement, 3)];
resultTemp = [mot stringByAppendingString:@" "];
result = [resultTemp stringByAppendingString:nom_fichier];
UIImage *image = [UIImage imageNamed:nom_fichier];
[btn setImage:image forState:UIControlStateNormal];
[btn setTitle:mot forState:UIControlStateNormal];
}
}
sqlite3_finalize(searchStatement);
}
return result;
}
So, you can see that I'm getting a filename from the database in order to know which file to apply to a button. And that's it. It works quite well until I'm stuck on the same results, forever. No error messages, though.
I'm using Xcode 4.6
Any help appreciated.
Thank you, folks.