通过Web服务多次更新数据

时间:2012-04-13 05:41:47

标签: php web-services visual-foxpro

我想问一下webservices。

考虑一个场景:

我在vfp桌面应用中输入数据。当我点击“保存”时,应用程序将我的数据保存在本地数据库中,并将其作为xml发送到远程位置的webservice(php文件)。然后,Web服务将我的数据插入远程位置的vfp数据库。 例如,当我点击“保存”时,我意识到我犯了一个错误。我更改了我的条目并再次点击“保存”。数据将通过webservice再次发送,以更新远程位置的数据。

问题是:

如何保证第一次插入后第二次更新将插入远程位置?我的意思是操作顺序是否保证Web服务器中的操作顺序相同?

非常感谢。

1 个答案:

答案 0 :(得分:0)

它通常不是相同的序列,因为两个请求彼此相同,到达目的地的时间取决于所采用的路线。在大多数情况下,它会按预期工作。

您可以让客户端等待更新,直到完成上一次更新。只需检查远程位置的响应。

在远程位置结束时你无能为力,因为即使你能检测到丢失的更新请求,你也没有它,它可能永远不会到来。有两种方法可以检测丢失的请求:为每个请求提供一个持续的号码,或者为更新添加某种版本。

对于第一种方式,如果请求到达,请检查它是否具有数字previousNumber + 1。如果没有,请报告错误或延迟它,直到请求previousNumber + 1到达。

对于第二种方式,检查当前版本的远程数据是否与请求中的预期版本相同。如果没有,请报告错误。

此版本可能是您点击"保存" - 按钮的时间。如果第二次更新在第一次更新之前到达,则第一次更新将具有比第二次请求使用的当前时间戳更小的时间戳。