Delphi中实现数据同步(100分求解答!)

ameng203 2009-04-14 10:42:25
问题说明:delphi实现数据登记,连接远程数据库服务器(SQL Server)。要求当数据库服务器连接不成功时,将数据记录到本地,等到数据库可以连接的时候,将记录在本地的数据同步到数据库服务器上。
问题:1.本地记录数据时,应采用哪种方式比较简便而且合理?
2.如何实现数据同步?
请给出比较详细的说明,有比较更好。谢谢
...全文
272 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
JeffChung 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 lovelymelon 的回复:]
引用 5 楼 ameng203 的回复:
引用 2 楼 lovelymelon 的回复:
2.在远程数据库成功后,首先检测本地Access数据库中是否存在未同步的数据,如果存在进行数据同步的处理。


如何检测本地数据库是否存在为同步的数据?如何同步?

两种方法:
1.认为本地Access数据库内的数据全部为未同步数据,在写入远程数据库后删除。(未删除都认为是未同步数据)
2.本地Access数据库的表中通过一字段鉴别是否为未同步数据,未同步时字段…
[/Quote]

up.我更喜欢第一种方法。同步时对服务器的影响更少点。

看数据量,数据的复杂度,简单的用文本文件都可以了
lovelymelon 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ameng203 的回复:]
引用 2 楼 lovelymelon 的回复:
2.在远程数据库成功后,首先检测本地Access数据库中是否存在未同步的数据,如果存在进行数据同步的处理。


如何检测本地数据库是否存在为同步的数据?如何同步?
[/Quote]
两种方法:
1.认为本地Access数据库内的数据全部为未同步数据,在写入远程数据库后删除。(未删除都认为是未同步数据)
2.本地Access数据库的表中通过一字段鉴别是否为未同步数据,未同步时字段值为0,在写入远程数据库后将字段值修改为1.
lovelymelon 2009-04-14
  • 打赏
  • 举报
回复
大体思路:
系统启动时通过adoconnection1与远程数据库连接,通过adoconnection2与本地Access数据库连接
如果adoconnection1连接失败,将此次登录产生的数据写入本地Access数据库中;
如果adoconnection1连接成功,读取本地Access数据库中是否存在尚未上传远程数据库的数据,如果存在,则逐条将这些数据写入远程数据库。
如果存在唯一编号的字段,在写入前,先读取远程数据库中当前字段最大值m(m为全局变量),在逐条读取本地数据向远程数据库写入时,此字段值用m+1代替。
ameng203 2009-04-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 lovelymelon 的回复:]
2.在远程数据库成功后,首先检测本地Access数据库中是否存在未同步的数据,如果存在进行数据同步的处理。
[/Quote]

如何检测本地数据库是否存在为同步的数据?如何同步?
ameng203 2009-04-14
  • 打赏
  • 举报
回复
这个...如何实现呢?能否讲下大体的思路和做法呢?没有搜到很明确的方法。
bdmh 2009-04-14
  • 打赏
  • 举报
回复
本地数据可以用access或者文本,adoquery或clientdataset都可以将数据存为文件
向数据库写数据时,注意关键字字段保持不重复即可
lovelymelon 2009-04-14
  • 打赏
  • 举报
回复
2.在远程数据库成功后,首先检测本地Access数据库中是否存在未同步的数据,如果存在进行数据同步的处理。
lovelymelon 2009-04-14
  • 打赏
  • 举报
回复
1.本地使用Access数据库
2.在存入本地的Access数据库时,将未同步的数据增加标识,在远程数据库连接成功后,将这些数据写入远程数据库。

如果存在多个客户端,而且数据中存在唯一编号之类的字段,需要在写入远程数据库时重新编号。

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧