在csdn上放了两天没一个人回答,呵呵。不知道是没说明白还是大家不会,给出思路就给分(50分)

  • 主题发起人 主题发起人 night
  • 开始时间 开始时间
N

night

Unregistered / Unconfirmed
GUEST, unregistred user!
在三层数据库开发过程中,如果想把异地的某种数据库(可能是oracle,sqlserver,access中的一种)中的数据导入到本地数据库(也可能是oracle,sqlserver,access中的一种)中来,我的决绝方法是在异地放置一个服务器端应用程序,由它连接异地的数据库,而连接串我是通过服务器端提供的借口函数由客户端设置的。数据导入的方法很简单就是通过查询控件对异地数据库进行查询然后在客户端循环负值给本地数据库。
问题是当远程的数据量特别的大的时候,传输特别的慢,我想知道有没有其他的方法?
用数据库的发布和订阅就不要说了,因为我使用的数据库种类不定。
 
好像也没有更好的办法了。网速的问题,不是技术上的问题。
 
如果没有图片的话可以保存个文本先
 
还是用老办法吧。异地的中间层负责定时生成最新数据的异动资料,将数据存成XML文件,定时以FTP方式上传到本地服务器,本地服务定时轮询FTP目录,处理一个文件就杀掉一个文件。如果你的异地服务器与本地服务器都有稳定的internet连接,稳定的IP地址,那就在异地的中间层写代码,更新异地数据的同时更新本地数据。
异地 本地
客户端 服务端 服务端 <------------- 客户端 
Client -----> 中间层 中间层
| | | |
| ------------------------- |
| |
数据库 数据库
 
to 茶壶
你说的可能可行
但是我是不能修改异地数据库中的数据的,因为那是别人软件的数据库,人家只是需要将各地的数据汇总到总部,然后由我们的软件进行处理,你说让我以xml文件的形式传输,我不知道你是不是指把数据表中的数据存成xml文件然后再把这个文件传过来。
问题是异地数据库大概要有800M吧,如果把它导成xml我觉得文件也小不了。
 
to night:
如果无法控制异地的程序那么还是用你的方法,只不过,你的方法中似乎还是要写一个服务程序去读取异地的数据,能不能考虑一下应用的实际情况,将数据传输量变成最小,比如,本地如果只需要统计结果,那么就在异地计算,只回传结果,如果实在是需要所有数据,则可以用仍然可以用文件的方式,当然可以不用XML,用自定义的文件格式,再压缩一下。事实上,类似于业务数据这样的元数据,压缩率还是挺高的。用FTP的主要目的是因为FTP协议是一个成熟的协议,无论从加密、传递、效率、断点续传等各方面都已经成熟好用了。利用成熟的技术原型我觉得并没有什么不好。
 
看来可能真的是没什么好方法了
谢了
 
接受答案了.
 
后退
顶部