前面我们讲了如何使用unidac 在datasnap 的服务端访问数据库,今天大概讲一下客户端如何访问

前面做的服务器?其实这个客户端适合任何datasnap 服务端。

首先我们建一个应用,并加入一个TDatamodule.

加入TSQLConnection 控件,并选择driver 为datasnap

 

 再放置一个TSqlServerMethod,设置 sqlconnection属性。然后打开我们前面做的服务端,就可以在选择服务端的 方法名了。

 

我们现在主窗体里面调用一下这个服务器方法,代码就非常简单了。

procedure TForm1.Button1Click(Sender: TObject);
begin
  dmf.echo_m.Params[0].AsString:=edit1.Text;
  dmf.echo_m.ExecuteMethod;
  memo1.Lines.Add( dmf.echo_m.Params[1].AsString)
end;

运行效果如图

说明调用成功。

现在我们再访问我们的数据库。要访问数据库,一共需要4个控件

 

依次为

  • TSQLConnection —连接 DataSnap 服务器;
  • TsqlServerMethod — 发送请求到服务器;
  • TDataSetProvider — 绑定TClientDataSet到TSqlServerMethod到
  • TClientDataSet-这个就不用介绍了

TClientDataSet–>TDataSetProvider–>TSQLServerMethod–>TSQLConnection

前面的控件引用后面。

 好了,我们在主界面访问一下数据库。

只有一句代码。

procedure TForm1.Button2Click(Sender: TObject);
begin
 dmf.dept_ds.Active:=True;
end;

运行效果如图

下面实现明细表的显示

首先我们把明细表访问的控件再加一遍

 

 为了明细表能够与主表同步,再写一下同步代码

procedure Tdmf.DataSource1DataChange(Sender: TObject; Field: TField);
begin
  Emp_ds.Close;
  Emp_m.ParamByName('DeptNo').AsInteger := Dept_ds.FieldByName('DEPTNO').AsInteger;
  Emp_ds.Open;
end;

回到主界面,重新改一下原来的代码

复制代码
procedure TForm1.btopenClick(Sender: TObject);
begin
  if not dmf.dept_ds.Active then begin
    dmf.dept_ds.Open;
    dmf.emp_m.ParamByName('DeptNo').AsInteger := dmf.dept_ds.FieldByName('DEPTNO').AsInteger;
    dmf.emp_ds.Open;
    btOpen.Caption := '关闭表';
  end
  else  begin
     dmf.emp_ds.Close;
     dmf.dept_ds.Close;
    btOpen.Caption := '打开表';
  end;
end;
复制代码

运行

移动主表记录

一切就是这么简单。

具体更详细的操作及实现,可以访问 unidac 官方的文章:https://blog.devart.com/using-dac-products-in-multi-tier-db-application-development.html

 

posted on   xalion  阅读(1212)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
历史上的今天:
2012-01-05 使用delphi 开发 web(四)使用ajax 与extjs交互
2012-01-05 使用delphi 开发 web(三)动态脚本里面使用数据库
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示