
FireDAC
文章平均质量分 80
pcplayer
这个作者很懒,什么都没留下…
展开
-
再谈 FireBird 的自增字段用 FireDAC 来处理
基于 MIDAS 的多层架构的数据库程序,客户端是 ClientDataSet,数据库服务器是 FireBird,服务器端采用 FireDAC 的数据库控件,如何处理数据库端的自增字段。之前我有博客文章介绍具体做法。这里更新一下另外一种做法,。原创 2022-09-17 01:58:52 · 850 阅读 · 0 评论 -
DataSnap 的服务器开启 TLS 1.2支持
最近有好幾位朋友寫信詢問我有關DataSnap和支援TLS 1.2的問題, 看來很了很多朋友還在使用DataSnap啊. 由於我已經有一段時間沒有使用DataSnap了, 記憶有點模糊, 因此也去查了一下原因順便更新一下對於DataSnap的記憶.在RAD Studio 1.4.1的Bug修正文件中可以看到下面的說明:TLS 1.2 support for Datasnap standalone or windows service server這證明在1.4.1之後的DataSnap已转载 2022-04-02 17:14:39 · 443 阅读 · 0 评论 -
Delphi 开发 iOS APP 的文件发布的问题
Delphi 写 iOS APP 嵌入 SQLite 数据库到 APP 里面作为 APP 的本地数据库Delphi 10.4.2 社区版。开发环境配置好以后,在 Delphi 里面可以直接按 F9 把程序下载到 iPhone 上跑起来。但问题来了,我的程序用到了 SQLite,结果打开数据库出错。单步跟踪,发现情况是:FDConnection1.Open 执行正确,异常出在 FDQuery1.Open 上面。错误提示是 XX 表不存在。这个 XX 表就是 FDQuery1 里面的 sel原创 2022-02-17 01:47:54 · 2095 阅读 · 0 评论 -
再谈 Firebird / Interbase 自增字段和 FireDAC 以及 ClientDataSet
之前我有篇文章谈到这个:InterBase、FireBird 的自增字段和 FireDAC 数据库控件_pcplayer的博客-优快云博客最近做了一些进一步的研究,以下是研究结果。FireDAC 的要点:1. FdQuery 采用 select 语句打开表后,默认,是可以编辑的,然后它的 Post 会自动将编辑的数据保存回到数据库;2. FdQuery 的属性 CacheUpdates 默认是 False 的,这时候 Post 是可以直接保存到数据库的。如果是 True 则需要执行 F原创 2021-08-06 17:40:37 · 719 阅读 · 0 评论 -
FireDAC 学习 - 8:三层数据库,一次提交多个表的数据
如本人上一篇博客《FireDAC 学习 - 7:三层数据库,一次传递多个表的数据》所说,可以一次性获取多个表的数据到客户端。在客户端编辑完成后,同样可以一次性提交客户端的 Delta 到服务器端,最后提交给数据库服务器。先看代码:procedure TDataModule2.ApplyUpdates;var AStream: TMemoryStream;begin{--------------------------------------------------------------原创 2020-07-18 12:24:21 · 1507 阅读 · 0 评论 -
FireDAC 学习 - 7:三层数据库,一次传递多个表的数据
需求在 MIDAS 架构下,主从表可以采用嵌套表的方式,一次性将多个嵌套的表的数据传递到客户端。假设有主从表 FdQuery1 和 FdQuery2,大致做法如下:1. 在服务器端,FdQuery1 和 FdQuery2 分别对应数据库服务器里面的一个表。它们对应的表有主从关系,主表的主键字段名为 ID;从表的外键字段名也是 ID;2. 服务器端,DataSource1 对应 FdQuery1。3. FdQuery2 的 SQL 语句大概是:select * from Table2 w...原创 2020-07-17 21:11:03 · 4061 阅读 · 2 评论 -
FireDAC 学习 - 6:CachedUpdates 模式下查看被删除的记录
概念前面的文章FireDAC 学习 - 5 讲到,将 FdQuery 和 FdMemTable 的 CachedUpdates 设置为 True,然后在 FdMemTable 里面编辑后,可以读取到编辑改动的记录,将编辑改动过的记录输出为 Stream,再通过网络将 Stream 送给 FdQuery 然后提交到数据库。CachedUpdates 方式下,所有对 FdQuery 或者 FdMemTable 里面的记录的修改,比如用户在绑定的 DBGrid 里面对数据做的修改,都缓存在内存里面,用户.原创 2020-07-05 19:46:58 · 2044 阅读 · 0 评论 -
FireDAC 学习 - 5:三层,远程提交,公文包模式
问题需求:以前版本的 Delphi,三层架构的程序,采用 TClientDataSet 来作为客户端的内存表,所有用户操作都是针对 TClientDataSet 里面的记录进行增删改的操作。在这里,用户修改后的记录,叫做 Delta。操作完成后,可以实现以下功能:1. 将用户增删查改从 ClientDataSet 里面读取出来,也即是 ClientDataSet.Delta,这是一个 Variant 类型的数据。通过网络通讯将这个数据传递给服务器端,服务器端可以直接把它赋予到一个服务器端的 Clie原创 2020-07-04 19:22:25 · 2429 阅读 · 0 评论 -
FireDAC 学习 - 4:属性继承
我们知道,TFdQuery 是通过 TFdConnection 去连接数据库的。而 TFdConnection 连接数据库的参数,可以通过 TFdManager 获得。打开前面的例子程序,在设计期,选择 FdQuery1,看看其属性面板,有一个属性:FetchOptions,这个属性可以拉开,里面有一堆属性可以设置。选中 FdConnection1,查看其属性面板,也有一个 FetchOptions 属性;选中 FdManager1 查看其属性面板,也有一个 FetchOptions 属性。原创 2020-06-27 23:31:38 · 2187 阅读 · 0 评论 -
FireDAC 学习 - 3:建立数据库连接 之 TFDManager
使用数据库,第一步是建立和数据库的连接。结果关于连接,不是第一篇,而是本系列第三篇。我使用 FireBird 开源数据库作为测试。FireDAC 支持 FireBird。在本系列第一篇,我没有仔细说 FDConnection1 是如何与数据库建立连接的。我用了最简单的办法,也就是双击设计期拖到界面上的 FDConnection1,它会弹出一个对话框。在那个对话框里面进行设置就好了,如下图:如上图,我指定 FireBird 数据库文件 TESTDATA.fdb 的全路径名称给 DataBase原创 2020-06-24 22:59:37 · 4092 阅读 · 1 评论 -
FireDAC 学习 - 2
复制数据ClientDataSet 依赖的是 Midas.dll,也就是说它是在 Midas 框架里面的。要想把一个 ClientDataSet 的数据复制给另外一个 ClientDataSet,最简单的做法是:ClientDataSet2.Data := ClientDataSet1.Data;这里的 Data 是一个 Variant 变量,它内含了具体的数据。但是,一个普通的 DataSet 比如一个 TADOQuery 是没有 Data 这个属性的。它的数据要变为 ClientData原创 2020-06-15 22:14:47 · 2882 阅读 · 0 评论 -
FireDAC 学习 - 1
之前玩 Delphi,数据库部分,用得最多的是 TClientDataSet。这个 TClientDataSet 有很多玩法,重点是它可以作为一个独立的内存表,无论数据来自什么数据库都支持,并且可以把内容保存为文件,也可以把内容通过远程传递。新的 Delphi,TClientDataSet 还在,但有了新的 FireDAC 的整套数据库访问控件,它也包含一个 TDfMemeTable 内存表控件。这个内存表控件该如何使用?比如,来自数据库的数据,该如何放进去?开始学习 FireDAC 的玩法。这里大原创 2020-06-14 22:23:32 · 4354 阅读 · 0 评论