刚做了一个简单的WEB查询网站,遇到一个问题就是:以后要实现把本地数据库中的一些数据更新到WEB服务器上的数据库中, 这个更新有人工运行方式,也可能有自动定时更新方式。因为从来没遇到过这种要求,请大家给个如何程序实现的思路。
主要这么几点:
1.这个更新程序是直接写在WEB查询网站程序的后台功能中,还是另外设计一个在本地运行?
2.对WEB服务器要有什么权限?现在只开了一个网站目录的FTP.
3.本机只能通过INTERNET网访问网站服务器,这样能行么?
主要这么几点:
1.这个更新程序是直接写在WEB查询网站程序的后台功能中,还是另外设计一个在本地运行?
2.对WEB服务器要有什么权限?现在只开了一个网站目录的FTP.
3.本机只能通过INTERNET网访问网站服务器,这样能行么?
1.你需要解决本地数据如何自动上传到WEB 服务器(本地至少要有一个WINFORM之类的程序吧,可以考虑在WEB 服务器上再上个WEB SERVICE 来进行数据通信)
2.本地数据如何同WEB服务器的数据对应,因为主键ID肯定会是一样的(你需要判断数据是新增还是更新)
2.本地数据如何同WEB服务器的数据对应,因为主键ID肯定不会是一样的刚才打错了...
1. 捕捉本地数据库的所有Insert、Update、Delete操作,然后记录这些操作sql到Db的某张表中,每天固定时间将这张表中该天进行的sql语句生成为一个带时间戳的txt文档
2. 本地数据库所在计算机每天将该txt文档通过ftp上传至Web服务器。
3. Web服务器每天去Ftp共享目录读取该txt文件,并执行该txt文件内的sql语句。
1.第一种方式如nikola、calltaotao提供的就是本地有个处理程序把本地数据库中的更新记录准备为一个文本文件之类的,FTP到服务器上,然后服务器上定时去检查服务器上的upload目录是否有新上传的数据文件,进行处理;
我现在本地和WEB服务器上都是access2003数据库,就是一个mdb库文件了,这种方法可行。
2.第二种如版主和baichangle的方法,好象是要写个什么webservice服务吧,一来没写过这种服务程序,二来还不太明白两位的具体实现方法,能不能再详细一些?
3.kansousasa:触发器我会写,但我这问题中主要是两个库不在一起,估计无用,同时我的数据只会在本地更新,WEB服务器上只是查询,没有新增、修改或删除的操作,所以只是本地DB单向更新给WEB服务器中的DB;
嗯,不知道我对上面的理解是否对了?
本地winservice定时执行(当时没考虑手工),网站端webservice
变更记录采用6楼方式,用一个表来记录,这个表大概结构为:id,发生变更的表名,变更表主键名,发生变更的行的主键值,变更类型。
winservice从该表取一条记录,从变更表取那行变更的数据(变更类型为删除则不需取),把数据整成一个<列名,列值>的集合,序列化压缩之类的。。搞到webservice在才开合成sql进行更新,webservice返回值来标识更新是否成功,成功就把本地的变更记录删掉。
另,如果是图片之类的字段比较大可能需要把图分成若干片段例如1k
因为是Web应用程序,所以Internet的通过性很好,FTP什么的就不要去想了,只要按自己定的数据格式以HTTP请求的方式向服务器提供数据就可以了,如果用WCF就比较省力了,特别是你打算用.net做一个专用客户端程序的时候。
什么是特定的页面?是否就是管理用户登录后的后台管理页面呢?那这个页面如何把本地数据库更新到WEB服务器的数据库中呢?
还有,用HTTP请求方式向服务器提供数据是如何实现的?能否提供一个代码例子参考一下呢?
比如在CSDN,你要登录是不是要转到登录页,输入了用户名和密码才能登录,那么这个登录页面就是我所说的特定页面,输入的用户名和密码就是要上传的数据,当点击了登录按钮以后,浏览器会把数据上传到服务器进行处理,然后更新数据库里相关表的信息。这就是一般HTTP处理数据上传的方式,只是包装形式不一样罢了。