Мне нужно выполнить запрос по какому-то коду. Выполнение запроса в MSSMS занимает полторы минуты (не так уж и плохо для более 4 миллионов строк). В коде я открываю соединение с
CDatabase *base = new CDatabase () ;
base->OpenEx ("Driver={SQL Server};Server=Computer\\User;Database=base;") ;
, затем я могу создавать CRecordset
объекты и выполнять запросы. Запрос SELECT COUNT
работает правильно (дает ~ 4M). Первый SELECT cols
запрос (выборка некоторых атрибутов) работает правильно. Их соответствующие CRecordset
правильно закрыты и очищены. Второй SELECT cols
запрос (большое соединение, которое возвращает строки 4M) истекает при каждой попытке.
Я не знаю, как установить значение тайм-аута запроса, как будет вызываться этот параметр или куда установить его в первую очередь. Я попытался много комбинаций параметров в строке подключения, я попытался отредактировать опции пула пилот-сигналов ODB C. Меня не интересует использование другого объекта соединения ODB C, но я могу настроить DSN и подключиться через него вместо использования строки прямого соединения.
В худшем случае я просто разбью все на страницы но сейчас это хлопотно, и, так как запрос может истечь, логически должен быть способ установить и этот тайм-аут, я хотел бы знать, что это такое.