delphi三层架构

    我们的delphi程序很多是以前开发的,采用典型的CS架构,由程序直接连接数据库。现在需要改成在外网可以直接操作软件。先把数据库搬到了阿里云上,测试发现直接连数据库和VPN连接测试速度很慢,直连还容易掉线。服务器申请大的带宽又太贵。把数据访问和一些业务逻辑改写成服务,由于软件太大,开发和测试需要投入大量工作,也不现实。最后通过使用SATRDA解决了问题。

    SATRDA 服务器和客户端通过HTTP实现通讯,只有需要数据交互的时候才与服务器通讯,解决了连接掉线的问题。通过提供ODBC驱动的方式,使得客户端代码不需要改变,就实现了两层到三层的转换。

SATRDA使用过程

服务端配置

1.QQ群:374683171 群文件下载最新版本satrda。解压后,运行服务端server/satserver

2.启动satserver.exe后,打开浏览器(支持chrome,IE8以上,360等),输入http://127.0.0.1:5555/admin 显示登录窗口,登录名:satrda,密码:satrda。登录后可以进行相关配置。

3.选择左边连接管理,显示连接管理界面,用于设置服务端和数据库的连接

默认有3条连接配置,点击mycon1的修改操作图标,修改mycon1的配置

点击测试连接,显示连接成功后,点提交,进行保存。

Delphi客户端

 只需要修改连接字符串,原来使用的控件都不需要修改。

BDE

//  创建驱动时会自动建立dsn satrda方便连接,默认DesParam=1;PB=0;
  bdedb.AliasName := 'satrda';
  bdedb.DatabaseName := 'mycon1';
  bdedb.LoginPrompt := False;
  bdedb.Params.Clear;

//  由于BDE无法指定连接串,将Server和DB_NAME等参数放入User Name和Password中,
//  User Name代替Server,Password代表DB_NAME
    bdedb.Params.Values['User Name'] := '127.0.0.1:5555';
    bdedb.Params.Values['Password'] := 'mycon1';

  bdedb.Connected := True;

ADO

{$IFDEF Unicode}FormatSettings.{$ENDIF}ShortDateFormat:='yyyy-MM-dd';
  {$IFDEF Unicode}FormatSettings.{$ENDIF}DateSeparator := '-';
  server := '127.0.0.1:5555';
  db := 'mycon1';

//只需要修改连接字符串,其它控件都不需要修改
  ADOConnection1.ConnectionString := 'driver=Smart ODBC Driver;server=' + server + ';DB_NAME=' + db + ';Uid=;Pwd=;HTTPS=0;PB=0;DesParam=1;' ;



FireDAC

//使用odbc连接加入ADPhysODBCDriverLink,设置ADPhysODBCDriverLink的值  
 ADPhysODBCDriverLink1.ODBCAdvanced := 'SERVER=127.0.0.1:5555;DB_NAME=mycon1;HTTPS=0;PB=0;DesParam=1;';
   ADPhysODBCDriverLink1.ODBCDriver := 'Smart ODBC Driver';
   con1.Open();





UniDac

 with UniCon do
  begin
    try
      Connected := False;
      ConnectString := '';
      ProviderName := 'ODBC';
      SpecificOptions.Add('ODBC.DSNType=ntConnectionString');
      Server := 'driver=Smart ODBC Driver;server=127.0.0.1:5555;DB_NAME=mycon1;HTTPS=0;PB=0;DesParam=1;';
      LoginPrompt := False;
      Connected := true;
      Self.Caption := 'Uni连接成功!';
    except
      showmessage('数据库服务器连接失败!');
    end;
  end;

完成后,其它操作都和原来一样。

阿里云单核1M带宽检索10W条记录,直连65秒,satrda不到3秒。

下载地址:

QQ群:374683171  (交流、下载最新版本)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值