一个三层的例子:
应用服务器的编写:
(1)新建一个工程
(2)点击“File”“New”“Other”,选择Multiter页标签的Remote Data Module
(3)设置CoClassName(例:输入TestServer),点击OK就会进入Remote Data Module编辑框
(4)在编辑框中可以添加任何与数据库相连的组件,既然你的机器上装了sql server ,你就可以 添加一个ADOConnection和ADOTable,进行数据库的连接设置。这里我要提醒一句,就是在用ADOConnection连接数据库的时候,最好把登陆数据库的密码保存下来,并且ADOTable1.active不要设置为True!!!然后再添加一个DataSetProvider1(在Data Access页中),并将其DataSet设置为TADOTable1.
(5)编译运行此程序,就算注册了 客户端的编写:
(1)新建一个工程文件
(2)在其中添加SocketConnection1(在DataSnap页中),将它的Host设置为你的应用服务器所在的机器名,在ServerName的下拉列表框中选择应用服务器的名称,port默认为211(注意:TSocketConnection靠的是TCP/IP协议进行通讯,所以要在应用服务器端需额外运行Scktsrvr.exe程序,该程序在..\\Borland\Delphi6\Bin目录里)
(3)然后添加一个ClientDataSet1(在Data Access中),将其RemoteServer设置为SocketConnection1,将PorviderName设置为DataSetProvider1,
(4)再添加一个DataSouce1和一个DbGrid1,将DataSouce1.DataSet设置为ClientDataSet1,DBGrid1.DataSource设置为DataSource1
(5)在FormCreate中编写代码如下:
procedure TForm1.FormCreate(Sender:TObject);
begin
SocketConnection1.Connected:=True;
ClientDataSet1.Active:=True;
end;
(6)编译运行,你的客户端就可以读取Sql Server数据库中的数据了!
=================================
本人Delphi 新手,上面给出的是Delphi 架构三层的一个简单例子,为什么标粗体的那段,我无法实现?也就是我客户端的socket connect 中的server name 根本就是空白(这个服务端需要注册?)假如需要注册的话?难道 我在写中间件的时候,测试一下,重注册一下,这不烦死?
应用服务器的编写:
(1)新建一个工程
(2)点击“File”“New”“Other”,选择Multiter页标签的Remote Data Module
(3)设置CoClassName(例:输入TestServer),点击OK就会进入Remote Data Module编辑框
(4)在编辑框中可以添加任何与数据库相连的组件,既然你的机器上装了sql server ,你就可以 添加一个ADOConnection和ADOTable,进行数据库的连接设置。这里我要提醒一句,就是在用ADOConnection连接数据库的时候,最好把登陆数据库的密码保存下来,并且ADOTable1.active不要设置为True!!!然后再添加一个DataSetProvider1(在Data Access页中),并将其DataSet设置为TADOTable1.
(5)编译运行此程序,就算注册了 客户端的编写:
(1)新建一个工程文件
(2)在其中添加SocketConnection1(在DataSnap页中),将它的Host设置为你的应用服务器所在的机器名,在ServerName的下拉列表框中选择应用服务器的名称,port默认为211(注意:TSocketConnection靠的是TCP/IP协议进行通讯,所以要在应用服务器端需额外运行Scktsrvr.exe程序,该程序在..\\Borland\Delphi6\Bin目录里)
(3)然后添加一个ClientDataSet1(在Data Access中),将其RemoteServer设置为SocketConnection1,将PorviderName设置为DataSetProvider1,
(4)再添加一个DataSouce1和一个DbGrid1,将DataSouce1.DataSet设置为ClientDataSet1,DBGrid1.DataSource设置为DataSource1
(5)在FormCreate中编写代码如下:
procedure TForm1.FormCreate(Sender:TObject);
begin
SocketConnection1.Connected:=True;
ClientDataSet1.Active:=True;
end;
(6)编译运行,你的客户端就可以读取Sql Server数据库中的数据了!
=================================
本人Delphi 新手,上面给出的是Delphi 架构三层的一个简单例子,为什么标粗体的那段,我无法实现?也就是我客户端的socket connect 中的server name 根本就是空白(这个服务端需要注册?)假如需要注册的话?难道 我在写中间件的时候,测试一下,重注册一下,这不烦死?
另外:在设计时一般客户端和服务器端都在同一台机器上,所以要特别注意发布程序时,客户端的SocketConnection1的Connected属性默认设置成FALSE,