前面我们讲了如何使用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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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(三)动态脚本里面使用数据库