2010-04-06 175 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