关于远程数据更新的方案....(100分)

  • 主题发起人 主题发起人 cAkk
  • 开始时间 开始时间
C

cAkk

Unregistered / Unconfirmed
GUEST, unregistred user!
我做了一个个人用的小软件,主要是一个小数据库, 我的一个朋友也喜欢,
我就给他考了一份, 他马上移民canada,那么,以后,我如何与他共享数据?

比如如果我往自己的库里面添加了一些数据,我希望通过某种手段,他可以
透过internet得到我的更新数据,并添加到自己的库里面去. 同样他的更新
数据我也希望能得到.

我的条件是:有一个internet主机(NT),可以放cgi,数据文件等, 但如果
放一个service不太可能.

我想了几个方案:

1.软件提供"将最新数据发布到网上",将需要的数据ftp到web server上,
对方下载数据,自己引入新数据;
2.双方通过server建立socket连接,互相传输数据.
但这需要server上有一个守护进程,而我这里不容易办到.

其实我自己的机器(win98)就是一个internet主机,有静态独立的IP地址,
而且白天全开机,专线上网,本来对方可以直接connect到我的机器上,不
用通过server, 但是因为china和canada时差太大,我上班时对方睡觉,
对方上班时我睡觉,所以直接连到我的机器上不现实.

不要建议用什么三层结构之类的,只是一个简单的小程序,希望用最简单
的技术实现.

有什么高见请发表吧!
 
我个人觉得是否可以用b/s来实现
既然数据库不大,而且就你朋友访问,
必数据量也不大,
用cgi或asp来实现对数据库的访问
这样由于使用一个库,不存在更新问题
对方可以通过远程访问你的叶面来操纵数据
至于你,可以用一个简单的delphi程序
来操纵数据
 
这是个办法,但是:

1.我不想再为这个程序做个asp版本,没时间.
2.如果做到网上,必然涉及到授权问题,否则别人....况且asp这么多漏洞,很难
保证数据安全(虽然是自己用,也要安全第一阿,呵呵)
3.很多众所周知的原因(速度,费用等),用browser版本没有exe版本方便;

所以,请一定使用exe版本考虑此问题.
 
一个不好的办法:

把你的数据库倒出来以文件(dBase、Access等)通过中间路径(免费邮箱等)发给对方;同样,他也以这种方式把他的数据发给你。
 
churchill的方法我喜欢,不过你得做一个数据库文件得导入导出接口.
发Email多方便,省得在这里伤脑筋.
 
用Delphi带的Datapump可以在不同的数据库之间倒数据,只不过有时得注意
不同的数据库支持的数据类型不一样,必需作必要的类型转换(在Datapump中完成).

假如我要从公司的MSSQL服务器上把数据搬回家:
1.用BDE或SQL Explorer先分别建一个MSSQL和Standard的别名,MSSQL别名指向
MSSQL服务器,Standard别名指向我要存数据的目录(或文件);
2.用Datapump从MSSQL别名中把数据倒到Standard别名中(中间可能有必要的数据
类型转换);
3.把数据文件拷回家,最好先该个名字,免得覆盖原来的表,再用Datapump从
Standard别名中把数据倒到MSSQL别名中;
4.现在就可以用Insert、Update之类来更新了。

真的方便!
 
要编程的话,可用TBatchMove实现。
 
我赞同把数据库倒出到文件,用EMAIL发送给对方,编数据的导入导出接口很容易.
可以将对数据库的操作记录到一个文件中,定期发送这个同步文件给对方,
用一个导入程序将这些数据导入到数据库以同步.
用Datapump不好,数据同步时容易出错(例如双方同时修改了同一条纪录).
 
有没有人从winsock/http上面想一些办法?
我有web server,除了不能放守护程序其他都可以.自己机器也有独立静态IP地址,
看看能不能利用上?
 
我做过这样的程序.我将数据文件压缩后,发送给对方,对方接受后,解压把数据更新
到库里.你有静态IP可以实现.就向前面几位老兄说的那样.
1.建standard假名,将sql server数据拷贝到paradox表中.
2.将paradox表文件压缩.压缩组件到深度历险上找.
3.用delphi的socket组件将数据文件传给对方.
4.对方受到后,解压,将数据表的数据更新到库中.
以上,实现起来一点也不复杂.
 
caKK恭喜恭喜:-)
我推荐使用ASTA,直接操纵数据库,很不错的,客户只需要个EXE,有TCP/IP连接
即可,我和EYES在INTERNET上实验过,速度也不错。
 
由于时差原因, cj的方案被cakk否决了.
 
诺顿和CJ的方案均被否决: 我和对方同时在网上的机会很小,因为时差.

现在看来还是email的方式最有效----虽然我不太喜欢.
我现在想,如果用socket,很难保证传输数据的完整性(中途掉线怎么办?)
对方马上就出发了,等几天如果没有更好的方案就结束问题.


CJ: 你恭喜我什么? 又不是我移民canada. :-)
光盘正在托别人带,别着急.
 
我是见你提到SOCKET才让你用ASTA的:-)
如果有EMAIL方案,FTP方案如何?:-)))
谢谢,谢谢。
 
刚学的新名词
使用MIDAS可解决你的数据库共享的问题!
 
分不多,就这样分吧!
 
后退
顶部