这是一个普遍的问题而不是通常的StackOverflow“有人可以纠正我的语法错误......”
SQL是最精彩的语言,所以在一行中我可以保存记录。 e.g。
INSERT INTO database VALUES (4,'Nilsen', 'Johan', 'Bakken 2', 'Stavanger')
但是如果我想用SQLite在Cocoa中保存/插入记录,我最终会写得更接近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时都要反复这种冗长程度命令...
非常感谢
答案 0 :(得分:1)
Use FMDB(一个优秀的SQLite包装器)。
答案 1 :(得分:0)
作为替代方法,您可以创建一个接受SQL查询和数据库名称的函数。函数的一个很好的用途是简化编写代码的过程。