第5章 FireDAC 更多的功
5-1批处理
- 在传统的数据存取中如果我们需要执行2个SQL命令,例如下面的SQL
SELECT * FROM TBLTAIPEIHOTELS:
SELECT * EROM CUSTOMERS:
在BDE/dbExpress 中我们需要使用2个Query组件并执行2次以取得 tbITaipeiHotels和CUSTOMERS这2个数据表的资料。
- 不过在FireDAC中我们可以 利用所谓的BatchSQL功能一次就执行这2个SQL命令。
FireDAC的BatchSQL功能可以让程序员使用一个TFDQuery组件一次执行多个SQL命令,
这样做有几个好处,
一是可以减少网络的来回次数,
二是可以利用数据库的Batch执行功能以增加执行SQL的效率,
三是可以减少客户端的资源。
- OpenBatchSQL
OpenBatchsQL方法先把执行 BatchSQL 的 TFDQuery 组件的 FetchOptions.AutoClose 特性值设定为False,否则TFDQuery在内定上接到回传的
第1个数据集对象之后就会會弃其他回传的数据集对象。
把2个SQL命令指定给TFDQuery的SQL特值,执行2个SQL命令,最后呼叫 FetchALL 方法一次把2个数据表中的数据都存取回客户端:
- CopyToMemoryTable 方法
CopyToMemoryTable 方法先把第1个回传的数据集对象中的数据指定给 fdmtCustomers 这个TFDMemTable 组件,
呼叫TFDQuery组件的NextRecordSet 方法取得下一个回传的数据集对象之后再指定给 fdmtTaipeiHotels个 TFDMemTable
-
5-2控制数据的显示和更新
FDQuery 组件的 Query Editor 的 Options 中各种设置 ...
- DataMapping Rules
- Default Field Formats
- Fetch Options 和 Posting Changes
- Rowset size
- Fetch Mode
Posting Changes (第166页)
-
- 当FireDAC 拇把数据更新回后端时,如何找到后端要更新的数据再予以更新就是由Options页次中的PostingChanges选项来控制。
-
5-3 数据转换 (172页)
- 5-4 处理自动增加值字段(Auto-IncrementField) (180页)
如何在 主/从 资料中处理自动增加值字段。(183页)
- 5-5 使用计算字段 (187页)
- 除了代表真正数据表字段的TField类别外,FireDAC 也支持计算字段(Calculated Field)和聚集字段(Aggregated Field)
- 计算字段是所谓的虚拟字段,计算字段并不存在 于实际的数据表中,而是在应用程序执行时暂时存在的字段。
- 计算字段一般是因为应用程 序在执行时需要暂时储存一些必要的计算数值而存在的,在应用程序结束后这些计算数值并不需要储存在数据库中。