Отмена операции – 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.