插入零值到SQLite数据库?(Inserting nil Values into Sqlite D

2019-11-03 08:27发布

我工作的一个iPhone应用程序在那里我从一个XML文件中提取数据,并将其插入到位于在App SQLite数据库。 我能够成功地做到这过程中,但现在看来,如果我尝试使用具有“无”的值的NSString sqlite3_bind_text,在App很快就会死掉。

这是失败的代码的示例:(修改后用于本示例)

// idvar = 1
// valuevar = nil

const char *sqlStatement = "insert into mytable (id, value) VALUES(?, ?)";
sqlite3_stmt *compiledStatement = nil;  
sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL);

sqlite3_bind_int(compiledStatement, 1, [idvar intValue]);;
sqlite3_bind_text(compiledStatement, 2, [valuevar UTF8String], -1, SQLITE_TRANSIENT);

Answer 1:

你有没有尝试过这样的:

sqlite3_bind_text(compiledStatement, 2, valuevar==nil?"":[valuevar UTF8String], -1, SQLITE_TRANSIENT);


文章来源: Inserting nil Values into Sqlite Database?