Что означает код HRESULT 0x80670002 (STATEREPOSITORY_E_STATEMENT_INPROGRESS)?

 
Предыдущий Следующий
STATEREPOSITORY_E_CONCURRENCY_LOCKING_FAILURE STATEREPOSITORY_E_CONFIGURATION_INVALID

STATEREPOSITORY_E_STATEMENT_INPROGRESS

Что означает STATEREPOSITORY_E_STATEMENT_INPROGRESS

STATEREPOSITORY_E_STATEMENT_INPROGRESS (0x80670002) — подготовленный запрос State Repository всё ещё находится в процессе выполнения и был повторно использован, сброшен или завершён слишком рано.

Что проверить

  • Найдите конкретный подготовленный запрос и зафиксируйте последовательность step/reset/finalize вокруг первого возврата HRESULT.
  • Не смешивайте этот код с блокировкой всей базы: сначала проверьте жизненный цикл одного statement и поток, который им владеет.
  • При асинхронном коде убедитесь, что второй пользователь запроса не получает его до завершения первой операции. Удаление базы State Repository не является способом исправить такую ошибку жизненного цикла.

Как подтвердить исправление

Ошибка устранена, когда каждый подготовленный запрос либо доводится до завершения, либо корректно сбрасывается перед повторным использованием, и та же последовательность больше не возвращает STATEREPOSITORY_E_STATEMENT_INPROGRESS.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.