Короткий вопрос: Я нахожу, что мне нужно использовать MARS над ODBC, но не над ADO/OLEDB, это правильно?Является ли ODBC от MARS, но ADO/OLEDB от VENUS?
Longer объяснение:
Я только что обнаружил мой ODBC код (с помощью "Driver = {SQL Native Client}", MFC CDatabase код) должен иметь MARS ("MARS_Connection = да"), потому что, хотя я не выдавайте несколько SELECT при открытии RecordSet, я получаю пакет строк, затем вам нужно открыть другой RecordSet, чтобы выпустить новый SELECT, а затем вернуться к первому RecordSet для следующей партии. Без MARS я получаю ошибку ODBC «Соединение занято результатами для другой команды». Все справедливо.
Однако мой код работает тождественно с ADO/OLEDB («Provider = SQLNCLI», #import msado15.dll) вместо ODBC. В той же ситуации у меня не должен был указать «MarsConn = yes».
Я смущен/удивлен. Является ли это правильным/ожидаемым, или я что-то упускаю?