1

unfortunately i have to work with ancient piece of software, that uses paradox tables. The following code gives me exception:

fdcMainPX->TxOptions->AutoCommit=false;
fdcMainPX->StartTransaction(); <---

"Project xxx raised exception class EFDException with message '[FireDAC][Phys][ODBC]-303. Capability is not supported'"

It appears, that windows odbc driver for paradox doesn't support transactions. I suppose that ole jet engine allows transactions with paradox but i'd rather use Firedac over ADO or BDE. How to set up connection with firedac to use MS Ole db ? Maybe there is another way? I am using C++ Builder XE6 Pro with Firedac

Vancalar
  • 963
  • 1
  • 7
  • 15
  • 1
    I haven't looked at the FD source, but what makes you think that it supports transactions on PDox tables? It seems unlikey to me because PDox is a file-system database. – MartynA Jun 09 '18 at 18:46
  • I believe @MartynA. MS ODBC driver [is not capable of transactions](https://learn.microsoft.com/en-us/sql/odbc/microsoft/sqlgetinfo-returned-values-for-paradox) (info type `SQL_TXN_CAPABLE`; which FireDAC checks and turns into that exception). I believe that Paradox itself is not capable of transactions (maybe the _new one_, part of a Corel product is). Even BDE used so called [local transactions](http://docwiki.embarcadero.com/RADStudio/en/Using_Local_Transactions) against it. – Victoria Jun 10 '18 at 13:44
  • @Victoria : I am fully aware of this, for now i am using BDE with local transactions, which kinda works but it's ugly, old and .. i don't want too :P. I hoped for mechanism similar to "buffered commits" in firedac althought it seems its not really possible, since nobody has answer for this – Vancalar Jun 13 '18 at 22:33
  • Ah, that's the point :) Well, use [cached updates](http://docwiki.embarcadero.com/RADStudio/en/Caching_Updates_(FireDAC)) then. – Victoria Jun 14 '18 at 07:49
  • 1
    @Victoria : Ah That's right! I didn't think about cached updates this way, post an answer please and i'll accept it. – Vancalar Jun 14 '18 at 09:32

1 Answers1

1

Paradox DBMS doesn't seem to be capable of transactions at all (maybe its new version, part of the Corel product is, but that doesn't seem to be your case).

However, if you just want to keep consistency of certain data batches in a single connection session, you can use cached updates.

Victoria
  • 7,822
  • 2
  • 21
  • 44