delphi 控制分布式数据库通信方式
一、 网络布局
一台中心SQL服务器(简称:中心服务器),多台分布在不同地域的SQL服务器(简称:本地服务器),各个本地服务器和中心服务器都能通过internet实现网络互连。
二、所用语言及数据库:Delphi +Sql
二、 通信要求
每台本地服务器与中心服务器每天都能相互交换数据库内的数据,实现数据的一致。但是不能保证数据的时实性(这一点请大家赐教)。本地服务器和中心服务器上都有一个通信程序,负责文件的网络传输。本地服务器和中心服务器中的数据库结构完全一样。
三、 本地服务器向中心服务器传输数据
1、 本地通信程序先把本地数据库中要传输的数据从各个表中收集起来,形成一个新的单机数据库(sqlite,这种数据库比较小)。里面各个表中存放着要上传的数据。
2、 与中心服务器上的通信程序连接,握手后,把生成的sqlite数据库通过网络传输给中心服务器,传输结束后,中心服务器对两个数据进行处理,如果sqlite内有的,sql 没有,则进行插入操作,如果都有的话,进行修改操作(删除的数据只是在库变化下标志位,并没有删除)。
3、 这些都处理好后,中心服务器上的通信程序给本地的通信程序发回一个标志,看是否处理成功,如果成功,则把本地中发送数据的标志位改成“已发送”,否则不变,等待下一次发送。
四、 中心服务器向本地服务器传输数据
1、 本地服务器向中心服务器发送下载指令和本地的IP,中心服务器上的通信程序收到指令后,开始收集数据形成sqlite数据库,然后向已指定IP的本地服务器发送文件。
2、 本地服务器收到文件后,开始与本地数据库内的数据进行比较,看是应该进行插入还是修改操作。结束后,再向中心服务器发送结束指令,
相关文档:
function GetFileSizeString(const pFileName: String):String;
var
iFileSize: Int64;
begin
Result := '0';
iFileSize := FileSizeByName(pFileName);
Result := IntToStr(iFileSize);
end;
function WinExecAndWait(strFileName: string; uCmdShow: UINT): DWORD;
var
cAppName: array ......
unit DvsLinkingClass;
interface
uses
Windows, Messages, SysUtils, Classes, Controls, Forms, Dialogs;
type
PRecLinkNode = ^RecLinkNode;
RecLinkNode = record
NodeMsg: String;
Counter: Integer;
Previous: PRecLinkNode;
Next: PRecLinkNode;
end;
TLinkingClass = class
......
2009-12-01 00:41:35
之前安装了oracle 10g,后来为了在C#里面连接oracle,安装了ODAC,之后连接数据库时,填写数据库服务名,总是会出错,连接测试无法通过,不填数据库服务名,倒还可以通过连接测试
今晚终于查到原因了。。。
系统属性那里的环境变量,path这里,oracle的两个默认路径:
d:\oracle\product\10. ......
http://developer.51cto.com/art/200510/7205.htm
[DELPHI]网络邻居复制文件
uses shellapi;
copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false);
[DELPHI]产生鼠标拖动效果
通过MouseMove事件、DragOver事件、EndDrag事件实现,例如在PANEL上的LABEL:
var xpanel,ypanel,xlabel,yla ......
北京腾度网络科技有限公司
地址:北京海淀区学清路
电话:82755789
因工作需要,现面向北京招聘以下职位.
Delphi软件工程师
1、精通Delphi开发,熟悉VCL架构,代码风格良好。
2、有良好的团队合作精神,富有创新精神;
3、熟悉网络编程,对Indy组件,Socket开发有一定的了解;
4、熟悉面向对象编程思想,有组件或控件编 ......