2012-06-08 60 views
0

這是一個普遍的問題,而不是通常的StackOverflow「有人可以糾正我的語法錯誤...」Xcode SQLite - 有沒有更簡單的方法?

SQL是最妙的壓縮語言,所以在一行中我可以保存一條記錄。例如

INSERT INTO database VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger') 

但是,如果我想保存/可可插入一條記錄,使用SQLite,我會寫出來接近14,例如

NSString *insertSQL = [NSString stringWithFormat: @"INSERT INTO CONTACTS (name, address, phone) VALUES (\"%@\", \"%@\", \"%@\")", name.text, address.text, phone.text];  
const char *insert_stmt = [insertSQL UTF8String];   
sqlite3_prepare_v2(contactDB,insert_stmt, -1, &statement, NULL); 
if (sqlite3_step(statement) == SQLITE_DONE) { 
self.status.text = @"Contact added"; 
self.name.text = @""; 
self.address.text = @""; 
self.phone.text = @""; 
} else { 
self.status.text = @"Failed to add contact"; 
} 
sqlite3_finalize(statement); 
sqlite3_close(contactDB); 

  } }

我明白每行是做什麼,但作爲一個Cocoa/SQLite新手所有我想要仔細檢查的是,如果有一種更簡單的方法,或者如果我只是在每次我想要執行最嚴格的SQL命令時都反覆出現這種級別的冗長...

非常感謝

回答

1

Use FMDB(一個很好的SQLite包裝)。

+0

抱歉,花了這麼久感謝你。我一直在閱讀這方面的內容,雖然我確信FMDB是我沒有找到太多文檔的答案。任何人都可以推薦一個我可以從中學習的好例子嗎? –

+0

@EdwardHasted FMDB本身[附帶示例](https://github.com/ccgus/fmdb/blob/master/src/fmdb.m)如何使用它。 –

0

作爲一種替代方法,您可以創建一個同時接受SQL查詢和數據庫名稱的函數。函數的一個很好的用法是簡化編寫代碼的過程。

相關問題