1
votes

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

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
I believe @MartynA. MS ODBC driver is not capable of transactions (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 against it.Victoria
@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 thisVancalar
Ah, that's the point :) Well, use cached updates then.Victoria
@Victoria : Ah That's right! I didn't think about cached updates this way, post an answer please and i'll accept it.Vancalar

1 Answers

1
votes

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.