在我的情況2我試圖替換qrcode的後來的sqlite條目。我想用新的FBid更新行。我如何選擇它並將其替換?這與SQLite有關嗎?還是有一些我需要在我的應用程序中應用的邏輯?如何有選擇地替換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?「 – 2014-10-09 20:24:04
(獲取sqlite3命令行工具並從命令窗口使用它,你可以從命令行對數據庫執行所有操作,看看它們是如何工作的,將它與基本的SQLite教程結合使用。) – 2014-10-09 20:26:00
是的,但我如何選擇性地執行它?我將永遠擁有最多兩個具有相同qrcode但兩個不同fbid的條目。原始條目將保持不變。但第二個入口將不斷更新一個新的fbid。所以我想知道如何選擇更新的條目進行更新? – 2014-10-09 20:26:41