1

嗨,这可能有一个简单的答案,我只是在努力理解如何处理它。

我创建了一个表:

"CREATE TABLE IF NOT EXISTS PERSONS (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, AGE   INTEGER, DT DATETIME DEFAULT CURRENT_TIMESTAMP)";

我试图根据姓名、年龄和注册日期删除一个人,以避免删除碰巧与另一个人同名和年龄的人(因此当前日期应该区分)

删除语句是:

[NSString stringWithFormat:@"Delete from persons where name is '%s','%s'",[p.name UTF8String],[p.date UTF8String]]];

我遇到的问题是“%s”在日期上一定不正确,因为它没有删除任何内容。

谢谢您的帮助。

4

2 回答 2

3

我认为您离删除语句还有很长的路要走。它应该更像:

[NSString stringWithFormat:@"Delete from PERSONS where NAME = \"%@\" and DT = \"%@\"", p.name, p.date];

PERSONS 和 NAME 需要大写,因为这是您在创建时定义它们的方式。您的 p.data 需要与 sqlite 存储日期的方式相对应。 danypata 的链接应该可以帮助你。

于 2013-05-31T20:16:58.167 回答
0

首先,我建议您在 sql 环境中尝试查询,您可以在其中找出语法中是否有任何错误。对我来说,看起来你应该使用 %@ 而不是 %s。%s 用于 C 语言,%@ 用于 Objective-c。看看这个帖子

于 2013-05-31T20:16:50.200 回答