SQLite nie przygotuje zapytania podczas uzyskiwania dostępu do bazy danych w Xcode
Jestem początkującym programistą iPhone'a, który próbuje pobrać informacje z bazy danych sqlite w Xcode 4.3. Mam swoją bazę danych (o nazwie DB_Info.sqlite) w tym samym katalogu, co moje pliki .h i .m, a także przeciągnąłem bazę danych do sekcji folderów na lewym pasku Xcode.
Czy mógłbyś rzucić okiem na mój kod i dać mi znać, gdzie jest mój błąd? Użyłem NSLogów, aby zidentyfikować, gdzie pojawia się problem, w ostatniej instrukcji if i jest napisane w komentarzach. Z góry bardzo dziękuję!
#import <sqlite3.h>
@implementation Player
{
sqlite3 *DB_Info;
NSString *databasePath;
NSString *docsDir;
NSArray *dirPaths;
}
-(Player*)createPlayer:(NSString*)playerName
{
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent: @"DB_Info.sqlite"]];
const char *dbpath = [databasePath UTF8String];
sqlite3_stmt *statement;
if (sqlite3_open(dbpath, &DB_Info) == SQLITE_OK) { //works fine
NSString *querySQL = [NSString stringWithFormat: @"SELECT * FROM playerlist WHERE fullName=\"%@\"", playerName];
const char *query_stmt = [querySQL UTF8String];
if (sqlite3_prepare_v2(DB_Info, query_stmt, -1, &statement, NULL) == SQLITE_OK) { //PROBLEM: This is where the problem is, and the if statement never goes through
//....rest of code here
} else {
NSLog(@"Error");
}
}