Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何在sqlite3中获取上次更新的值_Iphone_Sqlite - Fatal编程技术网

Iphone 如何在sqlite3中获取上次更新的值

Iphone 如何在sqlite3中获取上次更新的值,iphone,sqlite,Iphone,Sqlite,朋友们好, 我有一个应用程序,它将与数据库到web服务进行同步。我有一个表列表,我想更新、删除和插入该列表。当用户单击同步按钮时,我希望发送将在数据库中更新或更改的数据。web服务对于添加、更新或删除是不同的,我只想发送更新的记录 对此,我能做些什么?有什么建议吗 提前感谢,, Hardik Patel您可以为时间戳保留一个额外的列。 因此,无论何时更改记录,都应该更新时间戳。(记录时间戳) 您必须保持将数据成功发送到服务器的时间。(上次更新的时间戳) 因此,在同步时,您将只将这些记录发送到 记

朋友们好,

我有一个应用程序,它将与数据库到web服务进行同步。我有一个表列表,我想更新、删除和插入该列表。当用户单击同步按钮时,我希望发送将在数据库中更新或更改的数据。web服务对于添加、更新或删除是不同的,我只想发送更新的记录

对此,我能做些什么?有什么建议吗

提前感谢,,
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;
}