VB.Net не распознает активную транзакцию MySQL - PullRequest
0 голосов
/ 07 мая 2018

Я пишу приложение в VB.Net, которое работает через драйвер MySQL ODBC 3.51 с данными, хранящимися в базе данных MySQL. Пытаясь симулировать одновременный доступ, у меня открыта MySQL Workbench и мое приложение.

В Workbench я блокирую некоторые записи:

begin;
select * from tbltest where test like 'test%' for update;

В моем приложении я запрашиваю базу данных MySQL:

SELECT COUNT(*) FROM information_schema.innodb_trx;

И поскольку активная транзакция существует, я правильно получаю «1».

Я откатываю транзакцию в Workbench и пробую то же самое наоборот. На этот раз я запускаю транзакцию в моем приложении с точно таким же кодом SQL:

begin;
select * from tbltest where test like 'test%' for update;

Но когда я тогда запрашиваю information_schema.innodb_trx в Workbench, я получаю «0»: Workbench не находит активную транзакцию.

Однако когда я изменяю код на следующий, Workbench и мое приложение правильно находят активную транзакцию:

begin;
select * from tbltest for update;

Как может случиться, что в первом случае мое приложение VB.Net не найдет транзакцию, а во втором - нет? Может ли быть более общая проблема с драйвером ODBC MySQL?

Спасибо!

...