dirPaths = NSSearchPathForDirectoriesInDomains( NSDocumentDirectory, NSUserDomainMask, YES);
docsDir = [dirPaths objectAtIndex:0];
databasePath = [[NSString alloc] initWithString: [docsDir stringByAppendingPathComponent:@"contact.db"]];
NSFileManager *filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath:databasePath]== NO)
{
const char *dbpath = [self.databasePath UTF8String];
if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
{
char *errMsg;
const char *sql_stmt = "CREATE TABLE IF NOT EXISTS PERSON (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, PASSWORD TEXT,EMAIL TEXT)" ;
if (sqlite3_exec(contactDB, sql_stmt, NULL, NULL, &errMsg) != SQLITE_OK){
theStatus.text = @" FAILED TO Table created";
}
sqlite3_close(contactDB);
} else {
theStatus.text = @"Failed to OPEN/create database";
}}
[filemgr release];
我正在使用上面的代码,我已经尝试了sqlite3_open_v2
,但我遇到了问题。
请帮忙。
答案 0 :(得分:0)
如果您忽略了打开数据库或者使用的数据库引用似乎为零,则有两种情况会遇到内存不足错误。
请在下面的代码行中添加一个中断指针
if (sqlite3_open(dbpath, &contactDB) == SQLITE_OK)
并检查上面的if块是否被执行,如果不是,那么你就知道了罪魁祸首。