2013-11-07 7 views
0

Согласно документации Sybase (http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.help.sqlanywhere.12.0.1/dbusage/udtisol.html) есть один пункт:Unix FreeTDS Уровень изоляции Sybase

[...] Уровень изоляции по умолчанию 0, за исключением [...] и TDS соединения, которые имеют уровень изоляции по умолчанию 1. [...]

Im подключение к этому серверу с использованием FreeTDS в Unix. До сих пор я не нашел решение изменить уровень изоляции на 0 (Read-Uncommitted) (возможно, используя /etc/freetds.conf, но здесь я также ничего не нашел). Для меня невозможно изменить SQL-выражения, поэтому я ищу конфигурационную опцию.

Любая идея?

ответ

0

Это делает трюк:

set TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 
0

Вы можете установить уровень изоляции для подключения с использованием:

SET TEMPORARY OPTION isolation_level = 0; 

Если вам нужно больше информации check the documentation.

Вы можете увидеть текущий уровень изоляции с:

SELECT CONNECTION_PROPERTY('isolation_level'); 
+0

Не кажется, работает. «SET ...» запускается без каких-либо ошибок, но «SELECT CONNECTION_PROPERTY ...» запускается с ошибкой, указывающей что-то вроде таблицы databaseName.connection_property не найдена. После запуска некоторых других операторов выбора в существующих таблицах (с использованием того же соединения) я получил ту же ошибку с блокировкой строки. – Max

+0

Вы уверены, что используете Sybase SQL Anywhere 12? –

+0

Да. Ваше решение работает для tSQL, но не использует DBI/FreeTDS в unix:/ – Max

Смежные вопросы