Iphone 如何在sqlite3中获取上次更新的值
朋友们好, 我有一个应用程序,它将与数据库到web服务进行同步。我有一个表列表,我想更新、删除和插入该列表。当用户单击同步按钮时,我希望发送将在数据库中更新或更改的数据。web服务对于添加、更新或删除是不同的,我只想发送更新的记录 对此,我能做些什么?有什么建议吗 提前感谢,,Iphone 如何在sqlite3中获取上次更新的值,iphone,sqlite,Iphone,Sqlite,朋友们好, 我有一个应用程序,它将与数据库到web服务进行同步。我有一个表列表,我想更新、删除和插入该列表。当用户单击同步按钮时,我希望发送将在数据库中更新或更改的数据。web服务对于添加、更新或删除是不同的,我只想发送更新的记录 对此,我能做些什么?有什么建议吗 提前感谢,, Hardik Patel您可以为时间戳保留一个额外的列。 因此,无论何时更改记录,都应该更新时间戳。(记录时间戳) 您必须保持将数据成功发送到服务器的时间。(上次更新的时间戳) 因此,在同步时,您将只将这些记录发送到 记
Hardik Patel您可以为时间戳保留一个额外的列。 因此,无论何时更改记录,都应该更新时间戳。(记录时间戳) 您必须保持将数据成功发送到服务器的时间。(上次更新的时间戳) 因此,在同步时,您将只将这些记录发送到 记录时间戳>上次更新时间戳 上次更新的\u时间戳将在每次成功执行同步时更新 我希望这有帮助
此链接将帮助您比较sqlite中的时间戳您使用的
sqlite3\u int64 sqlite3\u last\u insert\u rowid(sqlite3*)代码>
- (NSNumber *)executeSQL:(NSString *)sql withCallback:(void *)callbackFunction context:(id)contextObject {
NSString *path = [self pathToDB];
sqlite3 *db = NULL;
int rc = SQLITE_OK;
NSInteger lastRowId = 0;
rc = sqlite3_open([path UTF8String], &db);
if(SQLITE_OK != rc) {
NSLog(@"Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
return nil;
}else {
char *zErrMsg = NULL;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
rc = sqlite3_exec(db, [sql UTF8String], callbackFunction, (void*)contextObject, &zErrMsg);
if(SQLITE_OK != rc) {
NSLog(@"Can't run query '%@' error message: %s\n", sql, sqlite3_errmsg(db));
sqlite3_free(zErrMsg);
}
lastRowId = sqlite3_last_insert_rowid(db);
sqlite3_close(db);
[pool release];
}
NSNumber *lastInsertRowId = nil;
if(0 != lastRowId) {
lastInsertRowId = [NSNumber numberWithInteger:lastRowId];
}
return lastInsertRowId;
}