我一直在這個小時,必須得到這個工作!它支撐着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