将nil值插入Sqlite数据库?

时间:2010-04-06 17:49:28

标签: iphone sqlite insert null

我正在开发一个iPhone应用程序,我从XML文件中提取数据并将其插入位于应用程序中的sqlite数据库。我能够成功完成这个过程,但看起来如果我尝试使用值为“nil”的NSString的sqlite3_bind_text,应用程序很快就会死掉。

这是失败的代码示例:(为此示例修改)

// 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);

1 个答案:

答案 0 :(得分:0)

你有没有试过像:

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