我在創建sqlite3表時出現問題,我在代碼中創建了數據庫,但它給出了一個錯誤:'NSInternalInconsistencyException',原因:'無法創建表'sqlite3表創建錯誤'NSInternalInconsistencyException'
我試圖檢查代碼來查找錯誤,但找不到任何錯誤。 這裏是一些代碼。
-(NSString *)filePath
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
return [[paths objectAtIndex:0] stringByAppendingString:@"dbfile.sql"];
}
-(void)openDB
{
if (sqlite3_open([[self filePath]UTF8String], &db) != SQLITE_OK)
{
sqlite3_close(db);
NSAssert(0,@"Database Failed to Open");
}else{
NSLog(@"Database Opened !");
}
}
-(void)createTable:(NSString *)tableName
withField1:(NSString *)field1
withField2:(NSString *)field2
withField3:(NSString *)field3
withField4:(NSString *)field4
{
char *err;
NSString *sql = [NSString stringWithFormat:
@"CREATE TABLE IF NOT EXIST '%@' ('%@'TEXT PRIMARY KEY, '%@' INTEGER, '%@' INTEGER, '%@' TEXT);",tableName,field1,field2,field3,field4];
if (sqlite3_exec(db, [sql UTF8String], NULL, NULL, &err) != SQLITE_OK)
{
sqlite3_close(db);
NSAssert(0,@"Could not create table");
}else{
NSLog(@"Table Created");
}
}
和我導入sqlite3.h
但每次我運行它崩潰模擬器,給了我這個錯誤。
請幫助我,謝謝。
嘗試重新導入您的數據庫文件 –
我在代碼中創建數據庫 – faisal60
不。您不是從上面顯示的代碼創建數據庫。如果你沒有包含數據庫創建代碼,請確保你的數據庫存在於路徑中。 –