Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 创建表并将数据插入SQLite数据库_Objective C_Sqlite - Fatal编程技术网

Objective c 创建表并将数据插入SQLite数据库

Objective c 创建表并将数据插入SQLite数据库,objective-c,sqlite,Objective C,Sqlite,我正在尝试检查我的应用程序中的数据库中是否存在表。如果表不存在,我需要创建一条记录并插入其中。这里唯一的问题是每次它都会插入一条新记录,而我只需要该数据库中的一条记录。实现这一目标的最佳方式是什么?我是否应该检查数据库是否存在,然后只在数据库不存在时运行此代码,或者是否有其他方法可以执行此操作 NSString *strSQL = @"CREATE TABLE IF NOT EXISTS \"Version\" (\"Type\" TEXT,\"Number\" DOUBLE DEFAULT (

我正在尝试检查我的应用程序中的数据库中是否存在表。如果表不存在,我需要创建一条记录并插入其中。这里唯一的问题是每次它都会插入一条新记录,而我只需要该数据库中的一条记录。实现这一目标的最佳方式是什么?我是否应该检查数据库是否存在,然后只在数据库不存在时运行此代码,或者是否有其他方法可以执行此操作

NSString *strSQL = @"CREATE TABLE IF NOT EXISTS \"Version\" (\"Type\" TEXT,\"Number\" DOUBLE DEFAULT (null) )";
const char *chrStmt = [strSQL UTF8String];
sqlite3_stmt *cmpStmt;
if(sqlite3_prepare_v2(db_stats, chrStmt, -1, &cmpStmt, NULL) == SQLITE_OK){
    sqlite3_step(cmpStmt);
}
sqlite3_finalize(cmpStmt);

strSQL = [NSString stringWithFormat:@"INSERT INTO Version (Type, Number) VALUES ('Database', %f);", db_version];
const char *chrStmt2 = [strSQL UTF8String];
if(sqlite3_prepare_v2(db_stats, chrStmt2, -1, &cmpStmt, NULL) == SQLITE_OK){
    sqlite3_step(cmpStmt);
}
sqlite3_finalize(cmpStmt);

我认为,使用NSUserDefaults可以解决您的问题,因为您只需要插入一条记录。