0

这是一个普遍的问题,而不是通常的 StackOverflow “有人可以纠正我的语法错误......”

SQL 是最精简的语言,因此我可以在一行中保存一条记录。例如

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 命令时,我是否只需要重复这种冗长的级别。 .

非常感谢

4

2 回答 2

1

使用 FMDB(一个优秀的 SQLite 包装器)。

于 2012-06-08T20:54:57.600 回答
0

作为替代方案,您可以创建一个同时接受 SQL 查询和数据库名称的函数。函数的一大用途是简化编写代码的过程。

于 2013-08-01T20:35:02.847 回答