【发布时间】:2018-11-19 11:30:16
【问题描述】:
不幸的是,我必须使用使用悖论表的古老软件。 以下代码给了我例外:
fdcMainPX->TxOptions->AutoCommit=false;
fdcMainPX->StartTransaction(); <---
“项目 xxx 引发异常类 EFDException,消息为 '[FireDAC][Phys][ODBC]-303。不支持功能'”
看来,paradox 的 windows odbc 驱动程序不支持事务。我想 ole jet 引擎允许有悖论的交易,但我宁愿使用 Firedac 而不是 ADO 或 BDE。 如何建立与 fireac 的连接以使用 MS Ole db? 也许还有另一种方式? 我正在使用带有 Firedac 的 C++ Builder XE6 Pro
【问题讨论】:
-
我没有看过 FD 源码,但是是什么让你认为它支持 PDox 表上的事务?这对我来说似乎不太可能,因为 PDox 是一个文件系统数据库。
-
我相信@MartynA。 MS ODBC 驱动程序is not capable of transactions(信息类型
SQL_TXN_CAPABLE;FireDAC 检查并变成该异常)。我相信 Paradox 本身不能进行交易(也许是 新的,Corel 产品的一部分)。甚至 BDE 也使用了所谓的local transactions 来对付它。 -
@Victoria :我完全意识到这一点,现在我将 BDE 与本地事务一起使用,这有点工作,但它很丑陋、陈旧而且......我也不想:P。我希望有类似于 fireac 中的“缓冲提交”的机制,尽管这似乎不太可能,因为没有人对此有答案
-
啊,这就是重点:) 那么,使用cached updates。
-
@Victoria :啊,没错!我没有考虑以这种方式缓存更新,请发布答案,我会接受。
标签: delphi c++builder firedac paradox