Foxtable(狐表)用户栏目专家坐堂 → 关于远程系统


  共有5475人关注过本帖树形打印复制链接

主题:关于远程系统

帅哥哟,离线,有人找我吗?
东坡一剑
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
关于远程系统  发帖心情 Post By:2013/7/13 18:59:00 [显示全部帖子]

如果基于互联网设计了远程系统,希望在网络断开的时候系统可以正常运行,网络连通后再将数据同步到数据源

1、数据源1采用SQL server,存放在租用的远程数据库中
2、再建一个本地的外部数据源2,所有的表和数据源1一样,可以理解为就是数据源1 的副本
3、用文件监视器监视数据源1,一旦数据有变动,就同步更新数据源2 的数据
4、打开项目后每隔10分钟连接一次数据源2,一旦连接不上,如果连接上,将数据上报到数据源1,;如果连接不上,即切换到数据源2

不知我的构想是否可行?
或者还有更好的建议?

 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/7/25 17:37:00 [显示全部帖子]

     我们正用着的数据库,既有内部局域网,也与远程数据库连接,内部数据库的数据要实时传送到外部数据库,外部数据库一断开,整个数据库操作就得全停,说是会判断网络连接状态,实际一次判断要耗费几十分钟,整个网络,有那么多人操作,这种判断,有等于没有。

     不知狐爸可有高招,让外网连接畅通与否,都不影响内部网络的正常运行,等外网连接正常了,再自动或人工补传未传送成功的数据。

看来大家都有这个问题,狐爸给个高招吧!

 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/7/25 22:08:00 [显示全部帖子]

不好意思,复制了lsy一段话,没注意里边有这么一句。

 

其实我的问题很简单,就是在一楼说的那个想法,我试了好几种办法,其中两种为:

1、试图在 beforeconnectouterdatasource 和 计划任务中 用datatable的 changeconnection方法,根据网络的通断情况切换到不同的数据源,然后用merger来同步数  据。但是因为执行beforeconnectouterdatasource事件时datatable尚未生成,因此失败。

2、试图在 beforeconnectouterdatasource 和 计划任务中 用修改数据源的链接字符串的方法来实现,可是在计划管理中我又不知道用什么手段来修改字符串,同时beforeconnectouterdatasource中如下代码仍以失败告终:

 

Dim sw As String ="Provider=SQLOLEDB.1;Password=74370794;Persist Security Info=True;User ID=a0722231449;Data Source=223.4.13.4"
Dim sn As String ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Users\Dell\Documents\管理项目4\诺诗兰.mdb;Persist Security Info=False"

If  e.Name = "wa"
    If Connections.TryConnect(sw) Then
        If e.ConnectionString = sn Then
            e.ConnectionString= e.ConnectionString.Replace(sn,sw)
        End If
        Return
    Else
        If e.ConnectionString = sw Then
            e.ConnectionString= e.ConnectionString.Replace(sw,sn)
        End If
    End If
End If

错误提示为:创建外部连接“wa”失败

 

我做了一个例子发过来,但是因为使用了外部数据源,可能在你那里看不到执行的效果


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.foxdb

[此贴子已经被作者于2013-7-25 22:24:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/7/25 22:18:00 [显示全部帖子]

还是11楼理解我的意思
[此贴子已经被作者于2013-7-25 22:18:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
东坡一剑
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:366 积分:2478 威望:0 精华:0 注册:2013/1/13 23:43:00
  发帖心情 Post By:2013/7/26 10:34:00 [显示全部帖子]

我在想,foxtable能不能为connection增加一个changeconnectionstring方法(姑且名之),可以在运行中动态切换数据源的链接字符串,也许能解决这一类问题。

狐爸请不要揪住判断时间不放,复制的时候没注意而已,这个已经不是一个问题了。

我们关注的焦点其实是一个很现实也很普遍同时也很迫切的应用需求。foxtable可以不是万能的,但必须是与时俱进的;而他的每一点进步,也许就发轫于发现并试图解决他的某个无能。

还有一个构想:如果通过判断网络的通断直接切换数据源或更改字符串不能成功,可不可以换一个思路——做两个完全一样的系统,通过判断外网的通断互相通过传递参数来打开,一个采用SQL server 数据源,外部网络通畅时使用;一个采用access 数据源,外部网络断开时使用。然后,在外网通畅的时候以代码自动同步两个数据源的数据。

望狐爸和各位朋友指教:如果不可行,请指出为什么,如果可行,大家可以在狐爸的带领下集思广益做一个成功的例子,以便帮助到更多的人。或者还有更好的想法,更是欢迎说出来一起分享。


 回到顶部