I am using DBI 1.27 and DBD-ODBC 0.28 with Active State perl 5.6.1 on a win2k machine to access a MicroFocus COBOL database on an AIX box via a middleware product called U/SQLI written by a company called Transoft.
The problem I now need to solve regards transaction processing. From the U/SQLI manual:


>>
Transaction Processing Syntax

The transaction processing syntax is as follows:

transaction [mode] {on|off}    Commence/Terminate transaction processing.
commit [work]    Commit a transaction.
rollback [work]    Rollback a transaction.

Both the Interactive U/SQL utilities, the client-based Win U/SQLi and the UNIX-based usqli, support the transaction processing syntax.
>>
The docs go on to instruct how to enable server side transaction processing by turning on filesharing under Microfocus COBOL. Transaction processing with the above syntax works fine when using the Windows client supplied by Transoft. And the ODBC driver provided by Transoft works fine with DBI for everything I've done previously.


However, with AutoCommit turned off I get the 'commit ineffective with AutoCommit enabled ' message when I try to use the 'commit' method. The COBOL database is not updated. From 'Programming the Perl DBI' I am given to understand that, when AutoCommit is disabled and the underlying database has explicit transaction support, the driver automatically begins a new transaction. Yet it appears that the AutoCommit attribute is being ignored.

Is this likely a conformance problem with the Transoft ODBC driver? Is there any way to pass through a 'transaction on' command to the driver or would it simply be ignored? Is this a problem only the authors of the driver can fix?

Thanks

--
Bill Kurland
Shakespeare & Co.


-- "There is no Modesty--No attention to one another. They talk very loud, very fast,and all together.If they ask you a Question, before you can utter 3 words of your Answer, they will break out upon you, again--and talk away" --John Adams, on New Yorkers



Reply via email to