Page 1 of 1

IsolationLevel *NONE?

Posted: Tue 09 Dec 2014 16:22
by blazarz
I have a Delphi 7 application that has a TTable instance. It's using the iSeries Access for Windows ODBC driver. I need to set the Commit Mode to "Commit Immediate". This option is not available in the IsolationLevel list. How can I set this property?

The following page includes a detailed description of the problem I'm having (SQL7008 error) as well as the SQL properties that need to be set.
https://www-304.ibm.com/support/docview ... s8N1017566

Re: IsolationLevel *NONE?

Posted: Wed 10 Dec 2014 09:11
by AlexP
Hello,

Since ODBCUniProvider works with various ODBC drivers, it has no specific options. You can configure Commit Mode in the DSN settings. https://www-304.ibm.com/support/docview ... s8N1017566 (Figure1)

Re: IsolationLevel *NONE?

Posted: Thu 11 Dec 2014 21:56
by blazarz
Yes, that's a work around. But my client really doesn't want to journal (turn on commitment control) for this particular set of files. It would be nice if there was a property editor to allow me to enter driver-specific settings (i.e., SQL_TXN_ISOLATION and SQL_AUTOCOMMIT) Maybe that's asking too much.

Re: IsolationLevel *NONE?

Posted: Fri 12 Dec 2014 09:05
by AlexP
Instead of setting DSN for connection to the database, you can use the following connection string.

Code: Select all

  UniConnection1.ConnectString := 'Provider Name=ODBC;Server={iSeries Access ODBC Driver};System=my_system_name;Uid=myUsername;CMT=0';
where

CMT or CommitMode - Specifies the default transaction isolation level.

Code: Select all

0 = Commit immediate (*NONE)
1 = Read committed (*CS)
2 = Read uncommitted (*CHG)
3 = Repeatable read (*ALL)
4 = Serializable (*RR)