Haven't used MS SQL- hopefully someone can help out.
A bit of background information, in case anyone else finds it useful-
I suspect that the only reason MySQL provided this as option is only because their default storage engine, MyISAM, is non-transactional for a faster performance, so there would be no point in enabling transaction on ODBC layer which MySQL silently processes whenever the MyISAM is used without any actual effect and just wastes the cycles. This helps improves the performance in this specific case. My usage could be constructed as "abuse" in the sense that they didn't intend this feature to enable me to bypass the transactions performed by Jet.
Now here's the thing, I couldn't find any references to transactions in ODBC Programmer's Guide, except for the SQL_ATTR_AUTOCOMMIT, which doesn't actually disable, but specify whether transactions can be implicit or must be explicit. This is normally a read/write, connection-specific, non-global setting, AFAIK. ODBC API doesn't use two-phase transaction; it's either implicit transactions, or explicit (by turning off the AUTOCOMMIT) and sending SQLEndTrans( [COMMIT | ROLLBACK ] ) call.
If I'm reading the source code for MyODBC right, all it does is check if transaction is enabled in the options, then set AutoCommit off, and a connection error is sent to the client (e.g. Jet in this case). I'm afraid I got lost following the convoluted calls and and translating the error codes, but I know this much- whatever the error was sent to Jet, Jet chose to silently ignore the error.
Maybe this will help someone else. I don't know.
EDIT:
Just had a flash of insight and figured out the code. The code sent to Jet is 'SQLSTATE: S1C00', or "Driver Not Capable." Oddly, this isn't in MSDN's programmer reference to ODBC, though it can be find in other links... Anyway, this is apparently a good thing as Jet chose to silently ignore that error.