我有一个带有FDQuery的数据模,所有设置都是如何设置的,并且在数据模的'OnCreate‘事件中打开它。此数据模式以另一种形式链接,其中包含其他查询、数据集、表和导航器。
我以前用过德尔菲XE8,一切都很好。
现在我正在使用Delphi10.2东京,与一个奇怪的bug做斗争:
(我声明用于所有查询的FDConnection和DataSets是相同的,并将AutoCommit属性设置为True)
最近,我发现只有当查询在'OnCreate‘事件中打开并保持打开时才会发生这种情况。如果我在打开它之后立即关闭它,一切都很好。如果在创建DataModule实例之后打开它,那么所有操作都很好。
如何解决这个问题,让查询在OnCreate事件中打开?
注: AutoCommit属性总是真实的,使用Delphi XE8编译将允许所有的工作。
NB2:试图覆盖DataModule的create事件来打开那里的查询。同样的结果。
更新:如果我将Query.FetchOptions.Mode设置为“fmAll”,它就会工作。
Update2:发现它没有提交,因为当数据模打开查询时,连接的属性InTransaction变成True,否则它被设置为False。
有人知道问题出在哪里吗?
发布于 2018-10-11 15:11:21
这似乎是一些人的错误,所以我报告了。如果您可以用一个示例程序复制它,或者找到引起(或解决)它的任何东西,请完成此https://quality.embarcadero.com/browse/RSP-21411。
这个问题刚刚被Embarcadero“解决”了。它很可能会出现在未来的修补程序中。
发布于 2018-09-25 15:21:39
在Oracle DB上使用DelphiV10.2,我也面临着同样的问题。值得注意的是,我并没有在所有的测试环境中看到这种行为。
我正在使用FDMonitor获取有关事务处理的详细信息,我可以在日志中看到,在未能提交事务的环境中,查询中有一个“ACommit”值,该值设置为False,而在环境中设置为True,在环境中该值运行良好。这很奇怪。10.2之前用delphi版本编译的我的应用程序的旧版本适用于所有环境。
致以敬意,
https://stackoverflow.com/questions/46580677
复制相似问题