【发布时间】:2014-10-09 20:21:44
【问题描述】:
在我的案例 2 中,我正在尝试为 qrcode 替换后面的 sqlite 条目。我想用新的 FBid 更新该行。如何选择它然后替换它?它与sqlite有关吗?还是我需要在我的应用中应用一些逻辑?
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docsPath = [paths objectAtIndex:0];
NSString *path = [docsPath stringByAppendingPathComponent:@"easyKTDB.sqlite"];
FMDatabase *database = [FMDatabase databaseWithPath:path];
[database open];
FMResultSet *results = [database executeQuery:@"select * from ktcode where code = ?;", qrCode];
while ([results next]) {
ktcode *aktcode = [ktcode new];
aktcode.ktCODE = [results stringForColumn:@"code"];
aktcode.ktFBID = [results stringForColumn:@"fbid"];
aktcode.uniqueID = [results intForColumn:@"id"];
[ktcodeArray addObject:aktcode];
}
switch (ktcodeArray.count)
{
case 0 :
[database executeUpdate:@"insert into ktcode (code, fbid) values (?, ?)", qrCode, FBid];
NSLog(@"%@ is now registered to %@ - %@", qrCode, userName, FBid);
break;
case 1:
[database executeUpdate:@"insert into ktcode (code, fbid) values (?, ?)", qrCode, FBid];
NSLog(@"%@ now belongs to %@ - %@", qrCode, userName, FBid);
break;
case 2:
//[database executeUpdate:@""];
NSLog(@"ktCodeArray: %@", ktcodeArray);
NSLog(@"%@ has been transfered to %@ - %@", qrCode, userName, FBid);
break;
default :
NSLog(@"Nothing else can be done");
//delete multiple entries here
【问题讨论】:
-
您基本上是在问“如何在 SQLite 中执行 UPDATE?”
-
(获取 sqlite3 命令行工具并从命令窗口使用它。您可以从命令行对数据库执行所有操作,看看它们是如何工作的。将它与基本的SQLite 教程。)
-
是的,但我如何有选择地执行它?我将始终拥有最多两个具有相同 qrcode 但两个不同 fbid 的条目。原始条目将保持不变。但第二个条目将不断更新新的 fbid。所以我想知道如何选择更新的条目进行更新?
-
阅读优秀的 SQLite documentation(或您选择的教程),尤其是 WHERE 子句。