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_EQ0x1 |
等于 |
CVR_SEEK_LT0x2 |
小于 |
CVR_SEEK_LE0x4 |
小于或等于 |
CVR_SEEK_GE0x8 |
大于或等于 |
CVR_SEEK_GT0x10 |
大于 |
[in] SortOrder
指定列的排序顺序。 索引列具有零个或一个限制可以包含排序顺序的 CVR_SORT_ASCEND 或 CVR_SORT_DESCEND。 具有两个或多个限制的非索引列或列必须使用 CVR_SORT_NONE。
价值 | 意义 |
---|---|
CVR_SORT_NONE0 |
无排序顺序 |
CVR_SORT_ASCEND0x1 |
上升 |
CVR_SORT_DESCEND0x2 |
降 |
[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 (包括 Certsrv.h) |
库 | Certidl.lib |
DLL | Certadm.dll |