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