Я занимаюсь этим часами и ДОЛЖЕН заставить это работать!Он задерживает релиз приложения для iPhone ... Мой первый раз с использованием SQLite.Я следовал всем советам, и все же мой вызов sqlite3_prepare_v2 каждый раз получает SQLITE_ERROR (1)!
Вот мой код от моего контроллера:
NSString *query = @"SELECT * FROM QandA ORDER BY random() LIMIT 1";
// const char *sqlStatement = "SELECT * FROM QandA ORDER BY random() LIMIT 1";
sqlite3_stmt *compiledStatement;
// sqlite3_stmt *statement;
int prepareStatus = sqlite3_prepare_v2(database, [query UTF8String],
-1, &compiledStatement, NULL);
if (prepareStatus == SQLITE_OK) {...
Вы заметите, что я 'мы пытались использовать "char *" также безрезультатно (среди других попыток).Моя база данных открывается нормально с:
databaseName = @"Facts.sqlite";
// Get the path to the documents directory and append the databaseName
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDir = [documentPaths objectAtIndex:0];
databasePath = [documentsDir stringByAppendingPathComponent:databaseName];
NSLog(@"databasePath = %@", databasePath);
int dbOpenStatus = sqlite3_open_v2([databasePath UTF8String], &database, SQLITE_OPEN_READWRITE, NULL);
Из моего интерфейса контроллера:
NSString *databaseName;
NSString *databasePath;
Я проверил в отладчике, и все выглядит хорошо, но оператором подготовки не удается.Я не знаю, как записать заявление, которое он пытается скомпилировать ... Я предполагаю / надеюсь, что это именно то, что говорит мой SELECT.
Может кто-нибудь помочь?Я в отчаянии.Mark