嗨,这可能是一个简单的答案,我只是在努力理解如何处理它。
我用:
创建一个表"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'一定不适合日期,因为它没有删除任何日期。
感谢您的帮助。
答案 0 :(得分:3)
我认为你对删除声明还有很长的路要走。它应该更像是:
[NSString stringWithFormat:@"Delete from PERSONS where NAME = \"%@\" and DT = \"%@\"", p.name, p.date];
PERSONS和NAME需要上限,因为这是您在创建中定义它们的方式。您的p.data需要与sqlite存储日期的方式相对应。 danypata's link应该帮助你。
答案 1 :(得分:0)
首先,我建议您在sql环境中尝试查询,以便确定语法中是否存在任何错误。对我来说,看起来你应该使用%@而不是%s。 %s用于Objective-c中的C,%@。看看这个post。