Mar*_*ark 2 sqlite xcode objective-c
我已经在这几个小时了,必须让这个工作!它正在举办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) {...
Run Code Online (Sandbox Code Playgroud)
你会注意到我尝试使用"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);
Run Code Online (Sandbox Code Playgroud)
从我的控制器界面:
NSString *databaseName;
NSString *databasePath;
Run Code Online (Sandbox Code Playgroud)
我已经检查了调试器,一切看起来都不错,但是prepare语句失败了.我不知道如何记录它试图编译的语句...我假设/希望它正是我的SELECT所说的.
有人可以帮忙吗?我很绝望.标记
在这里找到答案.我不得不使用它来代替DB文件的路径:
[[NSBundle mainBundle]pathForResource:@"Facts"extension:@"sqlite"];
Run Code Online (Sandbox Code Playgroud)
这给了一个稍微不同的路径(一个额外的目录) - 一旦我用它,它工作!希望这有助于其他人......我花了很多时间来做这件事.
| 归档时间: |
|
| 查看次数: |
10116 次 |
| 最近记录: |