Вопрос по OLE DB CMultipleResult и deadlock
От: Zakhar Россия  
Дата: 11.04.05 10:53
Оценка:
Всем привет

Проблема такая, есть C++ код, который через OLE DB читает рекордсеты возвращенные хранимой процедурой. Процедура не простая, а вложенная, т.е. их две, при этом первый рекордсет возвращается из внешней процедуры, а второй — из внутренней. Используется CCommand<...CMultipleResults>.
В один прекрасный момент при вызове внутренней процедуры возникает дедлок, после чего вызов GetNextResult() падает (возвращает FAILED(hr)). При этом внешний рекордсет успевает прочитаться без проблем. А сложность в том, что воспроизвести я это в тестовых условиях не могу, и неясен механизм вызова вложенной процедуры: могу ли я в случае ошибки позвать еще раз GetNextResult() ?

Спасибо!
Бороться, искать, найти и перепрятать!