SQL Delphi 中的服务器和数据库事务

SQL Server and database transactions in Delphi

我在 Delphi、SalesSaleItem 中有两个 table,它们是主要细节,我需要计算 [= =14=] 列中的 SaleItem table 并将此值保存在 Sales table 中的 PriceTotal 列中。

但是为此我需要使用数据库事务。怎么做?我以前从未做过,也没有找到任何可以让我在互联网上做的具体内容。

如何在Delphi中使用交易?我正在使用 Firedac 控件和 SQL Server 2014。

你真的不需要把数据存储在你的 master 中 table,那将是非常糟糕的设计。
只需在您的查询中计算它,像这样从主服务器获取数据

select SalesID,
       OtherSalesFields,
       ( select sum(isnull(SaleItem.PriceItem, 0)) 
         from   SaleItem 
         where  SaleItem.SalesID = Sales.SalesID
       ) as TotalPriceItem
from   Sales

现在,每次获取此查询时,您都将始终获得正确的值,而不必担心保持值同步、交易或其他任何事情

如果您真的必须将值存储在 Sales 中(这是糟糕的设计),那么永远不要在客户端中这样做,因为您无法使值保持同步。在这种情况下,在 SalesItem table 上创建一个触发器,它将计算值并更新 Sales table.