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 (include Certsrv.h) |
連結庫 | Certidl.lib |
DLL | Certadm.dll |