gpt4 book ai didi

sqlite - FireDac 获取受 FDQuery.execsql 命令影响的行数

转载 作者:行者123 更新时间:2023-12-03 15:24:50 27 4
gpt4 key购买 nike

我们如何获得受 FDQuery.ExecSQL 影响的计数对 SQLITE 数据库的 table1 执行 INSERT、UPDATE 或 DELETE 命令后 FireDAC 命令?

FDQuery.SQL.Text:='UPDATE table1 SET col1='abc' WHERE id<100';
FDQuery.ExecSQL;

我们如何获得受影响的行数?

ADO 中的同一查询从 MSSQL 数据库返回受影响的行数。

AffectedCount:=ADOQuery.ExecSQL;

最佳答案

方法有很多。

<小时/>
n := FDConnection1.ExecSQL('UPDATE table1 SET col1=''abc'' WHERE id<100');

http://docwiki.embarcadero.com/RADStudio/Seattle/en/Executing_Commands_(FireDAC) http://docwiki.embarcadero.com/Libraries/Seattle/en/FireDAC.Comp.Client.TFDCustomConnection.ExecSQL

执行 SQL 命令并返回受影响的行数。

<小时/>
FDQuery.SQL.Text:='UPDATE table1 SET col1=''abc'' WHERE id<100';
FDQuery.ExecSQL;
n := FDQuery.RowsAffected;

http://docwiki.embarcadero.com/RADStudio/Seattle/en/Executing_Commands_(FireDAC) http://docwiki.embarcadero.com/Libraries/Seattle/en/FireDAC.Comp.Client.TFDRdbmsDataSet.RowsAffected

获取 DBMS 反馈

使用 TFDQuery.RowsAffected 属性获取命令处理的行数(例如,DELETE 命令删除的行数。)注意:对于 MS SQL Server,当存储过程或表触发器省略 SET NOCOUNT ON 时,RowsAffected 可能会意外地等于 -1。然后,使用 TFDQuery.RecordCount 属性获取提取的行数。

<小时/>

https://www.sqlite.org/lang_corefunc.html#changes

FDQuery.SQL.Text:='UPDATE table1 SET col1=''abc'' WHERE id<100';
FDQuery.ExecSQL;
FDQuery.SQL.Text:='SELECT changes()';
FDQuery.Open;
n := FDQuery.Fields[0].AsInteger;
<小时/>

http://docwiki.embarcadero.com/Libraries/Seattle//en/Data.DB.TDataSet.PSExecuteStatement

PSExecuteStatement 返回受执行 ASQL 影响的行数。

我不知道 AnyDAC 是否实现了这个。

关于sqlite - FireDac 获取受 FDQuery.execsql 命令影响的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41322051/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com