以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  求助:采用SQL数据源编写项目,怎么实现项目关闭时,将SQL数据导出ACC数据保存到项目下,当网络不能连接SQL时候,项目直接连接ACC,当网络恢复后,项目将ACC数据比较SQL数据 新增的就自动写入SQL  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=61332)

--  作者:李孝春
--  发布时间:2014/12/10 23:46:00
--  求助:采用SQL数据源编写项目,怎么实现项目关闭时,将SQL数据导出ACC数据保存到项目下,当网络不能连接SQL时候,项目直接连接ACC,当网络恢复后,项目将ACC数据比较SQL数据 新增的就自动写入SQL

求助:采用SQL数据源编写项目,怎么实现项目关闭时,将SQL数据导出ACC数据保存到项目下,

当网络不能连接SQL时候,项目直接连接ACC,

当网络恢复后,项目将ACC数据比较SQL数据 新增的就自动写入SQL

 

以下代码我参照帮助写的  不当之处还请各位老师多多多指导!

拟先判断IP是否通畅,如果通就采用SQL数据,如果不同就采用本地ACC

If e.Name = "分级保护" Then
    If Network.Ping("192.168.1.100",1000) = False  Then \'如果第一个IP无法接通
        MessageBox.Show("当前网络不通畅,无法连接SQL服务器数据库,将使用本地ACC数据进行临时使用,待网络通畅后,同步ACC数据到SQL服务器中,请知晓!")
        e.C & e.ProjectPath & "分级保护系统.mdb;Persist Security Info=False"
    Else
        MessageBox.Show("当前网络通畅,采用SQL数据库,请知晓!")
        e.ConnectionString = e.ConnectionString.Replace("192.168.1.100")
    End If
End If

 

需要解决的问题如下:

1、如何在项目关闭后自动将SQL数据导出为ACC保存在项目文件夹下

2、如何进行比较ACC数据和SQL数据那些地方做了修改,并且自动同步更新!

3、如何进行网络判断,当网络不通时候,采用本地ACC,网络恢复后自动同步数据到SQL,并且更换到SQL数据库上去

 

求解!

 

 

 

[此贴子已经被作者于2014-12-10 23:56:18编辑过]

--  作者:程兴刚
--  发布时间:2014/12/11 0:51:00
--  

个人意见,无法联网,暂停程序操作,不要转本地数据库,否者,失去了远程SQL数据库的真实意义,数据库会紊乱!

 

比如:A增加了数据,但当时并没有提交,B在操作计算、汇总统计这类数据时,得不到真实结果,因此,SQL数据库无法连接时,干脆禁止客户端操作为宜,一年三百六十天,这样的事也不会出现几个小时,购买专业的数据库,也许三年也不会耽误您一回!


--  作者:有点甜
--  发布时间:2014/12/11 9:08:00
--  

1、把各个表的数据导出到access里面;

 

2、加一列,是否修改,取出各个表修改的行,赋值给sqlserver

 

3、如果数据源是sqlserver,就判断是否有更新,有更新,就操作第二步


--  作者:jspta
--  发布时间:2014/12/11 11:13:00
--  
代码复杂度也增加很多了。只能用在少量表和数据的情况下
--  作者:程兴刚
--  发布时间:2014/12/11 12:17:00
--  
我关心的是能不能用的问题,张三入库了,未适时提交,李四查不到,不能出,返过来,张三出库了,结余库存为0,未能适时更新,李四还可以出,怎么办?
--  作者:jspta
--  发布时间:2014/12/11 12:42:00
--  
以下是引用程兴刚在2014-12-11 12:17:00的发言:
我关心的是能不能用的问题,张三入库了,未适时提交,李四查不到,不能出,返过来,张三出库了,结余库存为0,未能适时更新,李四还可以出,怎么办?
首先这种场景不应该在断网情况下使用,技术上解决了,但是还是有可能录入重复。所以这种主要运用在查询信息方面,比如客户信息,历史合同等,可以在断网情况下临时查询。


--  作者:zyqzyy
--  发布时间:2014/12/11 13:15:00
--  
使用动态数据源就可以实现,但仅适用于“不返回数据”的情况,比如数据上报。