Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.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 回滚事务不需要';t使用TpFIB组件_Delphi_Delphi 2010_Fibplus - Fatal编程技术网

Delphi 回滚事务不需要';t使用TpFIB组件

Delphi 回滚事务不需要';t使用TpFIB组件,delphi,delphi-2010,fibplus,Delphi,Delphi 2010,Fibplus,我将Delphi 2010与FIB组件一起使用,比如TpFIBDataset,TpFIBTransaction和TpFIBDataset与Firebird数据库一起使用 我已经将TpFIBDataset的“AutoCommit”属性设置为“False”,然后在执行try..finally中的以下语句时,仍然会发布事务数据 代码: 邮政; 下面是示例代码 代码: 还必须检查和更改数据集上的事务 FIBDataset.AutoCommit := false; 您还需要关闭查询。在这种情况下 FIB

我将Delphi 2010与
FIB组件一起使用,比如
TpFIBDataset
TpFIBTransaction
TpFIBDataset
Firebird
数据库一起使用

我已经将TpFIBDataset的“AutoCommit”属性设置为“False”,然后在执行
try..finally
中的以下语句时,仍然会发布事务数据

代码:

邮政;

下面是示例代码

代码:


还必须检查和更改数据集上的事务

FIBDataset.AutoCommit := false;
您还需要关闭查询。在这种情况下

FIBDataset.Close;
FIBDatabase.Rollback;
编辑


我还建议您将一个事务组件分配给所有数据集(而不是数据库)。并使用事务组件的start、commit和rollback方法。此外,在执行任何操作之前,必须分配事务组件。

还必须检查和更改数据集上的事务

FIBDataset.AutoCommit := false;
您还需要关闭查询。在这种情况下

FIBDataset.Close;
FIBDatabase.Rollback;
编辑



我还建议您将一个事务组件分配给所有数据集(而不是数据库)。并使用事务组件的start、commit和rollback方法。此外,在执行任何操作之前,必须分配事务组件。

为什么要执行“…保留”?为什么不关闭事务?我还认为“StartTransaction”应该在TRY之前进行,以防调用中出现异常,但在Firebird StartForceCloseTransactions中的真正事务未在网格中显示数据之前。如果.Close被调用,我将获得一个超出范围的错误列表索引。我不是说关闭数据集,而是说关闭TDataset。Close,我是说关闭事务!只需调用.Commit或.Rollback而不使用“reserving”后缀。您好,请从FIBPlus开发者指南开始,这里有一个很好的分步说明:为什么要做“…reserving”?为什么不关闭事务?我还认为“StartTransaction”应该在TRY之前进行,以防调用中出现异常,但在Firebird StartForceCloseTransactions中的真正事务未在网格中显示数据之前。如果.Close被调用,我将获得一个超出范围的错误列表索引。我不是说关闭数据集,而是说关闭TDataset。Close,我是说关闭事务!只需调用.Commit或.Rollback而不使用“reserving”后缀。您好,请从FIBPlus开发者指南开始,这里有一个很好的分步说明:为什么要做“…reserving”?为什么不关闭事务?我还认为“StartTransaction”应该在TRY之前进行,以防调用中出现异常,但在Firebird StartForceCloseTransactions中的真正事务未在网格中显示数据之前。如果.Close被调用,我将获得一个超出范围的错误列表索引。我不是说关闭数据集,而是说关闭TDataset。Close,我是说关闭事务!只需调用.Commit或.Rollback而不使用“保留”后缀。嗨,请从FIBPlus开发者指南开始,这里有一个很好的逐步解释:我已经将AutoCommit设置为False,但它仍然不起作用。自动提交必须为False,只有我们才能使用事务,否则它将自动提交。数据库组件上的自动提交如何?你使用了什么隔离等?我认为您需要发布更多的代码。TpFIBDatabase组件没有自动提交属性不是TpFIBTransaction组件,它只是TpFIBDataSet组件。在安装和回滚事务时会发生大量代码计算。在一个事务组件的“TRParams”属性中,我发现了以下值:write、isc_tpb_nowait、read_committed、rec_version。对于其他事务组件,不存在任何值。首先,您是否在回滚(或提交)之前关闭所有数据集?这无关紧要,只要您说Dataset.Post,您就可以进行提交/回滚。我也尝试过关闭数据集。我已经将AutoCommit设置为False,但仍然不起作用。自动提交必须为False,只有我们才能使用事务,否则它将自动提交。数据库组件上的自动提交如何?你使用了什么隔离等?我认为您需要发布更多的代码。TpFIBDatabase组件没有自动提交属性不是TpFIBTransaction组件,它只是TpFIBDataSet组件。在安装和回滚事务时会发生大量代码计算。在一个事务组件的“TRParams”属性中,我发现了以下值:write、isc_tpb_nowait、read_committed、rec_version。对于其他事务组件,不存在任何值。首先,您是否在回滚(或提交)之前关闭所有数据集?这无关紧要,只要您说Dataset.Post,您就可以进行提交/回滚。我也尝试过关闭数据集。我已经将AutoCommit设置为False,但仍然不起作用。自动提交必须为False,只有我们才能使用事务,否则它将自动提交。数据库组件上的自动提交如何?你使用了什么隔离等?我认为您需要发布更多的代码。TpFIBDatabase组件没有自动提交属性不是TpFIBTransaction组件,它只是TpFIBDataSet组件。在安装和回滚事务时会发生大量代码计算。在一个事务组件的“TRParams”属性中,我发现了以下值:write、isc_tpb_nowait、read_committed、rec_version。对于其他事务组件,不存在任何值。首先,您是否在回滚(或提交)之前关闭所有数据集?这无关紧要,只要您说Dataset.Post,您就可以进行提交/回滚。我也尝试过关闭数据集。