Отмена операции – LINTER_Cancel
Прототип функции
L_LONG LINTER_Cancel( L_WORD ConnectID, /* идентификатор соединения */ L_WORD CursorID, /* идентификатор курсора */ L_LONG Option, /* параметры операции отмены */ L_LONG Reserved); /* зарезервировано */
Входные параметры
Параметр | Описание | |
---|---|---|
ConnectID
| Идентификатор соединения | |
CursorID
| Идентификатор курсора LinAPI либо номер канала СУБД ЛИНТЕР | |
Option
| Параметры операции отмены | |
Reserved
| Зарезервировано для дальнейшего использования |
Параметр Option
представляет битовую маску и может содержать следующие значения, объединяемые побитовым оператором "ИЛИ":
C_CANCEL
| 0x00000001 | Отмена операции, выполняемой по курсору | ||
C_CANCEL_AST
| 0x00000002 | Отмена асинхронной операции, выполняемой по курсору с принудительным вызовом пользовательской функции-обработчика | ||
C_CANCEL_AST_CLOSE_CH
| 0x00000004 | Принудительное закрытие курсора после отмены асинхронной операции; применяется совместно с C_CANCEL_AST |
Выходные параметры
Отсутствуют.
Описание
Функция отменяет выполнение SQL-запроса или любой другой операции. Возможна отмена операции, выполняемой по любому каналу СУБД ЛИНТЕР.
Параметр Option может быть равен 0. При этом второй параметр функции CursorID должен содержать номер канала СУБД ЛИНТЕР.
Если установлен бит C_CANCEL, остальные биты игнорируются.
Если установлен бит C_CANCEL_AST, происходит немедленный вызов пользовательской функции-обработчика без ожидания ответа. Пользовательской функции будет передан код eOperationCanceled. Курсор переводится в свободное состояние. Однако дальнейшее использование курсора возможно только после синхронизации с помощью функции LINTER_CursorComplete (предварительно должна быть установлена характеристика курсора cWaitComplete). Вызов любых других функций LinAPI для этого курсора до синхронизации запрещён!
C_CANCEL_AST_CLOSE_CH применяется только совместно с C_CANCEL_AST. Инициирует неявное принудительное закрытие курсора. Дальнейшее использование курсора невозможно.
Примечание
Для отмены синхронных операций параметр Option следует устанавливать в 0 и выполнять функцию LINTER_Cancel для канала СУБД ЛИНТЕР (характеристика курсора cChannelID).
Код eOperationCanceled пользовательской функции может быть передан не всегда. При отмене (в случае Option равном 0
или C_CANCEL) некоторых операций, например, LINTER_Fetch, возможны другие коды завершения. При этом обработчику будет передан код eLINTERError.