2010-04-06 127 views
0

我正在研究一个iPhone应用程序,我从XML文件中提取数据并将其插入位于应用程序中的sqlite数据库。我能够成功地执行此过程,但似乎如果我尝试使用具有“零”值的NSString的sqlite3_bind_text,应用程序很快就会死亡。将nil值插入Sqlite数据库?

这是一个失败的代码示例:(本示例修改)

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

回答

0

你有没有尝试过这样的:

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

这就是票 – Chris 2010-04-07 16:35:34