У меня есть приложение, которое изначально должно было подключаться к Sybase (через ODBC), но мне нужно было также добавить возможность подключения к SQL Server. Поскольку ODBC должен уметь справляться с обоими, я думал, что у меня хорошая позиция.
Неудобно, SQL Server по умолчанию не позволяет мне вкладывать команды ODBC и ODBCDataReaders - он жалуется, что соединение занято (Соединение занято результатами для другой команды).
Я знаю, что мне нужно было указать, что несколько активных наборов результатов (MARS) были разрешены в аналогичных обстоятельствах при подключении к SQL Server через собственный драйвер, поэтому я подумал, что это не будет проблемой.
Мастер DSN не имеет входа
y при создании SystemDSN.
Некоторые люди предусмотрели хаки реестра, но это не сработало (добавьте MARS_Connection со значением Да в HKEY_LOCAL_MACHINE \ SOFTWARE \ ODBC \ ODBC.INI \ system-dsn-name).
Другое предложение состояло в том, чтобы создать файл-dsn и добавить к нему "MARS_Connection = YES". Не сработало.
Наконец, строка подключения без DSN. Я попробовал это (используя MultipleActiveResultSets - та же переменная, что и для соединения с Sql Server),
"Driver={SQL Native Client};Server=xxx.xxx.xxx.xxx;Database=someDB;Uid=u;Pwd=p;MultipleActiveResultSets=True;"
и вот этот:
"Driver={SQL Native Client};Server=192.168.75.33\\ARIA;Database=Aria;Uid=sa;Pwd=service;MARS_Connection=YES;"
Я проверил различные сайты со строками подключения - все они предлагают то, что я уже пробовал.
Я должен заявить, что я пробовал как драйвер SQL Server, так и собственный драйвер SQL Server ...