现有一个系统,不同的地区用一套,各自用一个数据库,不过数据库结构一样。现在要求A用户能将人员表的变更的记录,发送到B用户,使得B用户也更改这条相应的记录,使A,B用户实现数据交互,从而达到数据库同步,当然A也可以与C或D等地区交互请问有没有高手有这方面的经验啊,指点一二,。。

解决方案 »

  1.   


    如果你要使用数据同步功能,请仔细阅读以下内容一、基本概念    数据集 - 指同步的对象,对于数据库,一个表,就是一个数据集;
        记录 - 组成数据集的数据条目,与数据库里的记录是同等概念;
        字段 - 一条记录的各个属性数据,与数据库里的字段是同等概念;
        "关键字段" - 一个特殊的字段,它的值具有唯一性,在一个表中,不会有两条记录的关键字段有相同值。关键字段应该是字符型或方便转换成字符串的。一旦记录写入完成,关键字段的值不可以被修改。关键字段不支持 Unicode。表的主键可以作为关键字段。为了提高同步效率,关键字段应该有索引。为什么要有关键字段?因为同步是根据关键字段来识别一条记录的,没有关键字段就不能区分各条记录,也就谈不上同步了。
        "修改时间" - 这是一个字段,对新加的记录,该字段保存添加记录的日期时间,如果记录被修改,该字段保存记录最后被修改的日期时间。要实现对记录的修改也能进行同步,必须要有"修改时间"字段,即使不需要对修改记录进行同步,为了实现高效的数据同步,也要有"修改时间"字段。该字段支持 DateTime, Date 类型。为了提高同步效率,修改时间字段也应该有索引。如果同步的双方(两个数据集)都有同一条记录,但有一边的该记录修改过了,就要对比“修改时间”字段来判断究竟哪边是修改过的。如果某些表,记录不算多(数百或上千条记录都算是较少的),且只会往里面添加记录,不会修改及删除其中的记录,那么,不需要有修改时间字段。同步专家网络版有一个时间选项,允许只同步最近多少天修改的记录,对于记录数量庞大的情况,经过这一选项的过滤,要扫描的记录就不多了。最大限度地节省同步所需要的时间。
        "删除标记" - 这是一个字段, 为了对记录的删除操作也能进行同步,要求应用系统删除记录时,不是立即从表中删除它,而是先将该记录的"删除标记"置为"真"。为什么要这样做?如果没有“删除标记”,删除记录时立即从表中删除,那么,对于双向同步的情况,该记录被删除之前,有可能已经同步到其它主机上了,下次同步时,可能将该记录又从其它主机同步回来了。在应用系统中要增加一个功能模块,用于定期(手工或自动)对表进行清理,删除所有标记为 已删除 的记录。二、软件架构 同步专家网络版
                  |
                  | 
          数据接口(wDataAcc.dll)
                  |
                  |
                 ODBC
                  |
                  |
                数据库三、使用方法
        1. 添加ODBC数据源
          运行Windows自带的ODBC数据源管理程序 odbcad32.exe, 可以添加数据源(也就是需要同步的数据库了)。
          有两种数据源"用户数据源", "系统数据源", 用户数据源,只允许当前登录的用户访问,而系统数据源允许本机的所有用户访问。
          下面以 Access数据库 d:\abc.mdb 文件为例介绍添加数据源过程:
          先选到"系统DSN"页, 点"添加"按钮, 然后选择驱动程序"Microsoft Access Driver(*.mdb)", 再点"完成",在"数据源名"一栏给该数据源取个名称(比如 ABC), 再点选择按钮,选"d:\abc.mdb"文件。最后点"确定"按钮,完成添加。
          有的数据库比如(MySQL, DB2...), 然后才能添加相应的数据源。    2. 数据接口配置
          数据接口(wDataAcc.dll)使用配置文件 DataSync.ini, 同步专家网络版提供了一个独立的程序IniAdmin.exe用于管理数据接口配置DataSync.ini(如果你理解该配置文件的结构,也可以用记事本编辑它)。    3. 同步专家网络版服务端
          为每个用户添加允许访问的 数据集,并指定其访问权限。    4. 同步专家网络版客户端
          为每个要同步的表添加同步任务(因为同步的对象是表), 设定各种同步参数。