Я пытаюсь подключиться к SQL Server 2019 с помощью MARS. Сначала я настроил системный DSN в источниках данных ODBC, который показывает, что MARS включен (драйвер 17 ODBC). Я также пробовал собственный клиент SQL Server 11.0, который дает тот же результат.
Затем я использовал это для создания соединения в pyodbc.
cnxn = pyodbc.connect(DSN = "83something",
UID = "something",PWD = "something")
how_many = cnxn.getinfo(pyodbc.SQL_MAX_CONCURRENT_ACTIVITIES)
print('how many ',how_many)
Однако я все еще получаю 1, что указывает на то, что MARS не включен для Pyodbc. Я боролся в течение долгого времени, и любая помощь приветствуется.
Я также пробовал MARS_Connection = yes в строке подключения, но не думаю, что это будет работать в Windows.
Наконец-то мне помогает настройка DSN с включенным MARS. Несмотря на то, что MAX concurrent показывает 1, на самом деле он может избежать «занятого курсора» или чего-то подобного.
Пожалуйста, обратитесь к следующим шагам:
Запустите командную строку администратора (например, нажмите кнопку «Пуск», начните вводить «Командная строка», а когда она появится, щелкните ее правой кнопкой мыши и выберите «Запуск от имени администратора»).
Выполните команду: odbcconf /a {CONFIGSYSDSN "SQL Server Native Client 11.0" "DSN=MY_DSN|MARS_Connection=Yes"} (заменив драйвер и имена DSN на свои).
Вы можете повторно запустить мастер настройки ODBC, и теперь он должен сказать «Множественные активные наборы результатов (MARS): ДА», где раньше было сказано … НЕТ.
Используйте CONFIGDSN вместо CONFIGSYSDSN, если вы используете пользовательский DSN. Ваши изменения должны быть видны, если вы снова откроете мастер настройки; параметр MARS (который вы не можете редактировать) должен был измениться с «Нет» на «Да».
https://crateanon.readthedocs.io/en/latest/faq_troubleshooting.html#configure-odbc-mars