Xcode SQLite - 有更简单的方法吗?

时间:2012-06-08 17:43:09

标签: xcode cocoa ios5 sqlite

这是一个普遍的问题而不是通常的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时都要反复这种冗长程度命令...

非常感谢

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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