我一直在这个小时,必须得到这个工作!它支撑着iPhone应用程序的发布......我第一次使用SQLite。我已经遵循了所有的建议,但是我的sqlite3_prepare_v2调用每次都得到一个SQLITE_ERROR(1)!sqlite3_prepare_v2越来越SQLITE_ERROR
这里是我的控制器我的代码:
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) {...
你会注意到,我一直使用“字符*”也无济于事试过(其他的尝试中)。我的数据库打开罚款:
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所说的。
任何人都可以帮忙吗?我很绝望。马克
如果你想进入电影用Objective-C SQLite数据库,我会建议使用FMDB,https://开头的github .com/ccgus/fmdb – 2011-02-27 22:11:08
好的,找出(最后)如何得到更详细的错误信息。准备调用的错误是“没有这样的表:myTableName”。它在那里,我也记录了MyDb.sqlite文件的完整路径。表*是错误中显示的名称,那么为什么会发生这种情况? – Mark 2011-02-28 00:46:48
检出FMDB并将在未来考虑它。谢谢。 – Mark 2011-02-28 13:18:37