Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi TClientDataSet如何在ApplyUpdate上发送SQL语句_Delphi_Tclientdataset - Fatal编程技术网

Delphi TClientDataSet如何在ApplyUpdate上发送SQL语句

Delphi TClientDataSet如何在ApplyUpdate上发送SQL语句,delphi,tclientdataset,Delphi,Tclientdataset,我想知道,调用applyUpdate时,TClientDataSet是如何执行SQL语句的 如果更改了多个记录,是否为每个记录准备了更新SQL查询并将其作为单个SQL语句发送,或者是否创建了SQL“脚本”并立即发送到数据库 我的意思是,当我ApplyUpdates在每次记录更改上与ApplyUpdates同时进行所有更改时,是否存在性能差异?没有从客户端发送SQL,只有增量数据包。服务器上的提供程序接收增量数据包并基于它生成insert/update/delete SQL语句。在一个请求中发送多

我想知道,调用
applyUpdate
时,
TClientDataSet
是如何执行SQL语句的

如果更改了多个记录,是否为每个记录准备了更新SQL查询并将其作为单个SQL语句发送,或者是否创建了SQL“脚本”并立即发送到数据库


我的意思是,当我
ApplyUpdates
在每次记录更改上与
ApplyUpdates
同时进行所有更改时,是否存在性能差异?

没有从客户端发送SQL,只有增量数据包。服务器上的提供程序接收增量数据包并基于它生成insert/update/delete SQL语句。在一个请求中发送多个更新通常会提高性能。

谢谢。提供程序是否为每个增量包创建一条SQL语句?他会一个接一个地发送到数据库吗?这取决于你使用的提供者及其选项。对于TDataSetProvider,它还取决于数据集。有关详细信息,请参阅源代码(从提供程序单元开始)。您应该使用sql监视器预览提供程序如何生成Delete/Update/Insert sql语句。。。