Поделиться через


Метод ICertView::SetRestriction (certview.h)

Метод SetRestriction задает ограничения сортировки и квалификации столбца.

Синтаксис

HRESULT SetRestriction(
  [in] LONG          ColumnIndex,
  [in] LONG          SeekOperator,
  [in] LONG          SortOrder,
  [in] const VARIANT *pvarValue
);

Параметры

[in] ColumnIndex

Допустимый номер индекса столбца для представления или предопределенного описателя столбца. Если параметр ColumnIndex не является отрицательным, это значение представляет отсчитываемый от нуля индекс столбца, получающего ограничение.

Если параметр ColumnIndex является отрицательным, все остальные параметры игнорируются, и этот параметр должен быть одним из следующих значений:

Ценность Значение
CV_COLUMN_QUEUE_DEFAULT
-1
Ограничивает представление запросов, которые не были разрешены; Если запрос привел к выполнению выданного сертификата или неудачного запроса, он не будет частью представления.
CV_COLUMN_LOG_DEFAULT
-2
Ограничивает представление разрешенными запросами. Запрос разрешается, если он привел к выданному сертификату или неудачному запросу; Отмененные сертификаты считаются разрешенными.
CV_COLUMN_LOG_FAILED_DEFAULT
-3
Ограничивает представление запросами, которые завершились сбоем.

[in] SeekOperator

Указывает логический оператор квалификатора запроса данных для столбца. Этот параметр используется с параметром pvarValue для определения квалификатора запроса данных.

Этот параметр должен иметь одно из следующих значений:

Ценность Значение
CVR_SEEK_EQ
0x1
Равно
CVR_SEEK_LT
0x2
Менее
CVR_SEEK_LE
0x4
Меньше или равно
CVR_SEEK_GE
0x8
Больше или равно
CVR_SEEK_GT
0x10
Больше

[in] SortOrder

Указывает порядок сортировки столбца. Индексированные столбцы с нулевым или одним ограничением могут включать порядок сортировки CVR_SORT_ASCEND или CVR_SORT_DESCEND. Неиндексированные столбцы или столбцы с двумя или более ограничениями должны использовать CVR_SORT_NONE.

Ценность Значение
CVR_SORT_NONE
0
Порядок сортировки не указан
CVR_SORT_ASCEND
0x1
Восходящий
CVR_SORT_DESCEND
0x2
Спускающийся

[in] pvarValue

Указывает квалификатор запроса данных, применяемый к этому столбцу. Этот параметр вместе с параметром SeekOperator определяет, какие данные возвращаются в представление служб сертификатов.

Возвращаемое значение

Если метод выполнен успешно, метод возвращает S_OK.

Если метод завершается ошибкой, он возвращает значение HRESULT, указывающее на ошибку. Список распространенных кодов ошибок см. в разделе Общие значения HRESULT.

Замечания

Объект ICertView поддерживает массив ограничений, что позволяет каждому столбцу содержать любое количество ограничений. После установки ограничений столбцов вызов метода ICertView::OpenView извлекает данные с ограничениями каждого столбца, используемыми в рамках запроса базы данных.

Перед вызовом метода SetRestriction необходимо установить подключение к серверу службы сертификатов путем вызова методаICertView::OpenConnection.

Примеры

    // This example restricts the data
    // to rows that have RequestIDs greater than five.
    // pCertView is a pointer to ICertView.
    HRESULT    hr;
    VARIANT    varRest;
    LONG       nIndex;
    BSTR       bstrCol = NULL;

    // Use one column in the result set.
    hr = pCertView->SetResultColumnCount(1);
    if (FAILED(hr))
    {
        printf("Failed SetResultColumnCount - %x\n", hr);
        goto error;
    }
    // Determine the column index for RequestID column.
    bstrCol = SysAllocString(TEXT("RequestID"));
    hr = pCertView->GetColumnIndex(FALSE, bstrCol, &nIndex);
    if (FAILED(hr))
    {
        printf("Failed GetColumnIndex - %x\n", hr);
        goto error;
    }
    // Place this column into the result set.
    pCertView->SetResultColumn(nIndex);
    // Set a restriction on this column.
    VariantInit(&varRest);
    varRest.vt = VT_I4;
    varRest.lVal = 5;
    // Restrict view to requests with ID greater than 5.
    hr = pCertView->SetRestriction(nIndex,
                                   CVR_SEEK_GT,
                                   CVR_SORT_NONE,
                                   &varRest);
    if (S_OK != hr)
        printf("Failed ICertView::SetRestriction - %x\n", hr);
    else
    {
        // Call OpenView, process rows, release resources, and so on.
        // ...
    }
error:
    // Done processing, clear resources.
    VariantClear(&varRest);
    if (NULL != bstrCol)
        SysFreeString(bstrCol);

Требования

Требование Ценность
минимальные поддерживаемые клиентские Не поддерживается
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
целевая платформа Виндоус
заголовка certview.h (include Certsrv.h)
библиотеки Certidl.lib
DLL Certadm.dll

См. также

ICertView

ICertView2

ICertView::OpenConnection

ICertView::OpenView

ICertView::SetResultColumn

IEnumCertViewColumn::IsIndexed