IBatchCompletionState
IBatchCompletionState
— одноразовый интерфейс, всегда возвращаемый методом execute()
интерфейса IBatch
.Он содержит более или менее (в зависимости от параметров, переданных при создании IBatch
) подробную информациюо результатах выполнения пакета.
-
getSize
unsigned getSize(StatusType* status)
Возвращает общее количество обработанных сообщений.
-
getState
int getState(StatusType* status, unsigned pos)
Возвращает результат выполнения сообщения с номером
pos
. При любой ошибке с сообщением это константаEXECUTE_FAILED
,возвращаемое значение в случае успеха зависит от наличия параметраRECORD_COUNTS
при создании пакета.Когда она присутствует и имеет ненулевое значение, возвращается количество записей, вставленных, обновленных или удаленныхво время обработки конкретного сообщения, иначе возвращается константаSUCCESS_NO_INFO
. -
findError
unsigned findError(StatusType* status, unsigned pos)
Находит следующее (начинающееся с
pos
) сообщение, обработка которого вызвала ошибку.При отсутствии такого сообщения возвращается константаNO_MORE_ERRORS
. Количество векторов состояния,возвращаемых в этом интерфейсе, ограничено значением параметраDETAILED_ERRORS
при создании пакета. -
getStatus
void getStatus(StatusType* status, IStatus* to, unsigned pos)
Возвращает подробную информацию (полный вектор состояния) об ошибке, которая произошла при обработке сообщения
pos
.Чтобы различать ошибки (вIBatch::execute()
или вIBatchCompletionState::getStatus()
), этот статус возвращаетсяв отдельном параметреto
, в отличие от ошибок в этом вызове, которые помещаются в параметрstatus
.
Специальные значения, возвращаемые getState()
:
-
EXECUTE_FAILED
— при обработке этого сообщения произошла ошибка; -
SUCCESS_NO_INFO
— информация об обновлении записи не была собрана.
Специальное значение, возвращаемое findError()
:
-
NO_MORE_ERRORS
– больше нет сообщений с ошибками в этом пакете.