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– больше нет сообщений с ошибками в этом пакете.