此示例演示如何使用阵列DML在FireDAC中。
位置
你可以找到批次示例项目位于:
- 开始|程序| Embarcadero RAD Studio Athens |示例然后导航到:
对象Pascal\Database\FireDAC\Samples\Comp Layer\TFDQuery\ExecSQL\Patch
- 子版本存储库:
- 您可以在中找到Delphi代码示例GitHub存储库。根据您的RAD Studio版本按名称搜索样本库。
描述
这个批次示例显示如何使用阵列DML在一个步骤中执行多个SQL INSERT命令以优化数据库填充性能。在本演示中,“批处理”和“阵列DML”术语是可以互换的。
如何使用样本
- 导航到上面给出的位置并打开
批次.dproj
.
- 按F9或选择运行>运行.
文件
Delphi中的文件 |
包含 |
批次.dproj
批次.dpr
|
项目本身。
|
fBatch.pas(批次)
f批次.fmx
|
主要形式。
|
实施
在运行示例之前,在设计时使用对象检查器如下:
- 两个TFD查询命名的对象qrySelect(质量选择)和qryBacth公司。这些组件实现了能够执行SQL查询的数据集:qryBacth公司负责
插入
查询数据库中的数据,同时qry选择负责选择
查询数据库中的数据以显示数据集。为此,示例配置了这两个对象的以下属性:- 这个连接属性配置为指定用于连接到DBMS的FireDAC连接对象。
- 这个SQL语言的属性qry选择设置为
从{id FDQA_Batch_test}中选择*
.
- 这个SQL语言的属性qry插入设置为
插入{id FDQA_Batch_test}(tint,tstring,tblob)值(:f1,:f2,:f3)
.
注:您可以更改SQL语言的属性qry插入在运行时通过检查插入blob复选框。
- A类TDataSource(数据源)名为的对象数据源1。此组件提供数据集组件和窗体上的数据软件控件之间的接口。在此示例中,它用于提供数据集和网格显示数据集的位置。为此,样本设置了以下属性:
- 这个数据集的属性数据来源设置为
qryExecSQL
.
- 这个数据来源的属性数据库网格1设置为
数据源1
.
运行应用程序时,您会在表单上看到以下组件:
- A类组合框标记为使用连接定义.
- A类标签命名阵列大小。预设值为
10000
.
- 两个复选框标记为插入blob(未选中)和批处理执行(选中)。
- 两个按钮标记为执行SQL和断开连接。两个按钮都被禁用。
收件人定义连接到数据库,单击使用连接定义组合框并选择一个选项。当您选择组合框的一项时,该示例将启用执行SQL和断开连接按钮并取消选中插入blob复选框。然后,如果您单击执行SQL按钮,该示例执行qry批处理。SQL语句的执行取决于复选框的状态和调整阵列大小值:
- 这个qry批处理SQL语句取决于插入blob复选框:
- 如果未选中,则qry批处理SQL语句设置为
'插入{id FDQA_Batch_test}(tint,tstring)值(:f1,:f2)'
.
- 如果选中,则SQL语句设置为
'插入{id FDQA_Batch_test}(tint,tstring,tblob)值(:f1,:f2,:f3)'
.
- 单击时执行SQL按钮,带有批处理执行选中时,样本使用执行中的方法阵列DML模式,其中阵列大小label指定每个参数数组的大小。更改阵列大小值来更改参数数组的长度。另一方面,如果批处理执行则示例使用执行SQL方法来执行SQL语句。
使用
另请参见
样品