Уровень изоляции в ODBC
Добавлено: 05 апр 2012, 11:53
Здравствуйте.
Подключаюсь к базе из Perl через ODBC (DBD::ODBC), и мне нужен уровень изоляции snapshot. Можно ли его указать прямо в строке подключения? По умолчанию стоит уровень read committed no record_version infinite wait - видно в таблицах мониторинга. Сейчас используется следующая строка подключения: "driver=Red Database/Firebird driver; dbname=server:db_alias; uid=xxx; password=xxx;". Пробовал добавлять туда "concurrency=lock" (вычитал из документации к пакету tclodbc для Tcl/Tk) - эффекта ноль, вместо этого можно добавить строку с любой чушью, и она спокойно прожуется.
Оператор set transaction isolation level snapshot вызывает ошибку, хотя, согласно руководству SQL к Firebird 2.1, он относится к DSQL.
В ODBC не разбираюсь, к сожалению, почему и спрашиваю. Найденная мной информация по ODBC содержит либо кучу C++ кода, либо руководства по настройке источников данных в панели управления винды.
Существует Perl-драйвер для Firebird/Red Database, но немного смущает его номер версии (0.xx), не хочется на боевой базе такое применять. Существует также пакет Win32::ODBC или наподобие, который, думаю, поддерживает уровни изоляции, но у него совершенно другой интерфейс, и придется много переписывать.
Red Database 2.1.3.8496, Windows XP SP3 x86
Подключаюсь к базе из Perl через ODBC (DBD::ODBC), и мне нужен уровень изоляции snapshot. Можно ли его указать прямо в строке подключения? По умолчанию стоит уровень read committed no record_version infinite wait - видно в таблицах мониторинга. Сейчас используется следующая строка подключения: "driver=Red Database/Firebird driver; dbname=server:db_alias; uid=xxx; password=xxx;". Пробовал добавлять туда "concurrency=lock" (вычитал из документации к пакету tclodbc для Tcl/Tk) - эффекта ноль, вместо этого можно добавить строку с любой чушью, и она спокойно прожуется.
Оператор set transaction isolation level snapshot вызывает ошибку, хотя, согласно руководству SQL к Firebird 2.1, он относится к DSQL.
В ODBC не разбираюсь, к сожалению, почему и спрашиваю. Найденная мной информация по ODBC содержит либо кучу C++ кода, либо руководства по настройке источников данных в панели управления винды.
Существует Perl-драйвер для Firebird/Red Database, но немного смущает его номер версии (0.xx), не хочется на боевой базе такое применять. Существует также пакет Win32::ODBC или наподобие, который, думаю, поддерживает уровни изоляции, но у него совершенно другой интерфейс, и придется много переписывать.
Red Database 2.1.3.8496, Windows XP SP3 x86