注意
自 Windows XP 起,不再支援編製索引服務,無法從 Windows 8 使用。 請改用 Windows 搜尋 進行客戶端搜尋,並使用 Microsoft Search Server Express 進行伺服器端搜尋。
DBCOMMANDTREE 結構是用來代表 OLE DB 命令樹中任何節點的主要數據結構,如本參考的數據操作運算符和數據定義運算符一節所述。 此結構用於 OLE DB 命令樹中每個資料操作語言 (DML) 或資料定義語言 (DDL) 節點。
語法
typedef struct tagDBCOMMANDTREE {
DBCOMMANDOP op;
WORD wKind;
struct tagDBCOMMANDTREE *pctFirstChild;
struct tagDBCOMMANDTREE *pctNextSibling;
union {
__int64 llValue;
unsigned __int64 ullValue;
BOOL fValue;
unsigned char uchValue;
signed char schValue;
unsigned short usValue;
short sValue;
LPOLESTR pwszValue;
LONG lValue;
ULONG ulValue;
float flValue;
double dblValue;
CY cyValue;
DATE dateValue;
DBDATE dbdateValue;
DBTIME dbtimeValue;
SCODE scodeValue;
BSTR *pbstrValue;
ICommand *pCommand;
IDispatch *pDispatch;
IMoniker *pMoniker;
IRowset *pRowset;
IUnknown *pUnknown;
DBBYGUID *pdbbygdValue;
DBCOLUMNDESC *pcoldescValue;
DBID *pdbidValue;
DBLIKE *pdblikeValue;
DBCONTENT *pdbcntntValue;
DBCONTENTSCOPE *pdbcntntscpValue;
DBCONTENTTABLE *pdbcntnttblValue;
DBCONTENTVECTOR *pdbcntntvcValue;
DBCONTENTPROXIMITY *pdbcntntproxValue;
DBGROUPINFO *pdbgrpinfValue;
DBPARAMETER *pdbparamValue;
DBPROPSET *pdbpropValue;
DBSETFUNC *pdbstfncValue;
DBSORTINFO *pdbsrtinfValue;
DBTEXT *pdbtxtValue;
DBVECTOR *pdbvectorValue;
SAFEARRAY *parrayValue;
VARIANT *pvarValue;
GUID *pGuid;
BYTE *pbValue;
char *pzValue;
DB_NUMERIC *pdbnValue;
DBTIMESTAMP *pdbtsValue;
void *pvValue;
DBPROBABILISTIC *pdbprobValue;
DBRELEVANTDOCUMENT *pdbreldocValue;
} value;
HRESULT hrError;
} DBCOMMANDTREE;
成員
op
運算子標識碼 (2 個字節)
DBCOMMANDOPENUM 列舉中的 DBCOMMANDOP 類型值。 它會從 數據操作運算符 或數據定義運算元指定運算符,該運算元會定義要發生在相關聯字段上的作業。
wKind
下列等位的辨別子 (2 個字節)
來自 DBVALUEKINDENUM 列舉型別的 DBVALUEKIND 型別值。 它會定義相關聯等位成員的數據類型,讓命令處理器知道如何解譯它。
pctFirstChild
第一個子 (4 個字節的指標)
DBCOMMANDTREE 結構的指標,表示命令樹之這個節點的第一個子系。
pctNextSibling
同層級 (4 個字節的指標)
DBCOMMANDTREE 結構的指標,表示命令樹之這個節點的下一個子系。
value
等位直接代表符合8個字節的欄位。 批注會列出對應至每個欄位的 DBVALUEKIND 和 DBTYPE。
要保存這個 OLE DB 提供者所支援之每個數據類型值的等位。 對於保存8個字節或更少位元組的任何等位成員數據類型,值本身會儲存在這裡。 否則, llvalue 是 pwszValue 成員,這是數據的指標。
pwszValue 成員是字串;其解譯會保留給提供者。 換句話說,取用者必須瞭解提供者的名稱解析方法。 對於「傳遞」至另一個提供者的命令元件,它會保留給接收提供者來解譯字串。
pMoniker 成員用於未解析的連結物件,特別是數據表和函式。
pRowset 成員可用來參考目前開啟的數據列集做為命令的輸入。 如果在命令樹參考開啟的數據列集時叫用 IPersist 方法,大部分的提供者都會失敗。
pCommand 成員會參考另一個命令物件做為命令的輸入。 如果在命令樹參考不支援Monikers的命令物件時叫用 IPersist 方法,大部分提供者都會失敗。
value.llValue
DBVALUEKIND_I8 (DBTYPE_I8)
value.ullValue
DBVALUEKIND_UI8 (DBTYPE_UI8)
value.fValue
DBVALUEKIND_BOOL (DBTYPE_BOOL)
value.uchValue
DBVALUEKIND_UI1 (DBTYPE_UI1)
value.schValue
DBVALUEKIND_I1 (DBTYPE_I1)
value.usValue
DBVALUEKIND_UI2 (DBTYPE_UI2)
value.sValue
DBVALUEKIND_I2 (DBTYPE_I2)
value.pwszValue
DBVALUEKIND_WSTR (DBTYPE_WSTR)
value.lValue
DBVALUEKIND_I4 (DBTYPE_I4)
value.ulValue
DBVALUEKIND_UI4 (DBTYPE_UI4)
value.flValue
DBVALUEKIND_R4 (DBTYPE_R4)
value.dblValue
DBVALUEKIND_R8 (DBTYPE_R8)
value.cyValue
DBVALUEKIND_CY (DBTYPE_CY)
value.dateValue
DBVALUEKIND_DATE (DBTYPE_DATE)
value.dbdateValue
DBVALUEKIND_DBDATE (DBTYPE_DBDATE)
value.dbtimeValue
DBVALUEKIND_DBTIME (DBTYPE_DBTIME)
value.scodeValue
DBVALUEKIND_ERROR (DBTYPE_ERROR)
value.pbstrValue
DBVALUEKIND_BSTR (DBTYPE_BSTR)
value.pCommand
DBVALUEKIND_COMMAND (DBTYPE_IUNKNOWN)
value.pDispatch
DBVALUEKIND_IDISPATCH (DBTYPE_IDISPATCH)
value.pMoniker
DBVALUEKIND_MONIKER (DBTYPE_MONIKER)
value.pRowset
DBVALUEKIND_ROWSET (DBTYPE_ROWSET)
value.pUnknown
DBVALUEKIND_IUNKNOWN (DBTYPE_IUNKNOWN)
value.pdbbygdValue
DBVALUEKIND_BYGUID
value.pcoldescValue
DBVALUEKIND_COLDESC
value.pdbidValue
DBVALUEKIND_ID
value.pdblikeValue
DBVALUEKIND_LIKE
value.pdbcntntValue
DBVALUEKIND_CONTENT
value.pdbcntntscpValue
DBVALUEKIND_CONTENTSCOPE
value.pdbcntnttblValue
DBVALUEKIND_CONTENTTABLE
value.pdbcntntvcValue
DBVALUEKIND_CONTENTVECTOR
value.pdbcntntproxValue
DBVALUEKIND_CONTENTPROXIMITY
value.pdbgrpinfValue
DBVALUEKIND_GROUPINFO
value.pdbparamValue
DBVALUEKIND_PARAMETER
value.pdbpropValue
DBVALUEKIND_PROPERTY
value.pdbstfncValue
DBVALUEKIND_SETFUNC
value.pdbsrtinfValue
DBVALUEKIND_SORTINFO
value.pdbtxtValue
DBVALUEKIND_TEXT
value.pdbvectorValue
DBVALUEKIND_VECTOR |*
value.parrayValue
DBVALUEKIND_ARRAY |*
value.pvarValue
DBVALUEKIND_VARIANT (DBTYPE_VARIANT)
value.pGuid
DBVALUEKIND_GUID (DBTYPE_GUID)
value.pbValue
DBVALUEKIND_BYTES (DBTYPE_BYTES)
value.pzValue
DBVALUEKIND_STR (DBTYPE_STR)
value.pdbnValue
DBVALUEKIND_NUMERIC (DBTYPE_NUMERIC)
value.pdbtsValue
DBVALUEKIND_DBTIMESTAMP (DBTYPE_DBTIMESTAMP)
value.pvValue
泛型DBVALUEKIND_BYREF
value.pdbprobValue
DBVALUEKIND_PROBABILISTIC
value.pdbreldocValue
DBVALUEKIND_RELEVANTDOCUMENT
hrError
錯誤指標,擴充錯誤資訊 (4 個字節) 的詳細數據
備註
許多作業都會建立系結環境。 例如,DBOP_select作業有兩個輸入:數據表和布爾述詞。 (如需此作業的詳細資訊,請參閱 具有 Two Variants for Ordered 和 Non-Ordered Tables 的運算符。) 透過「選取」作業,數據表會變成述詞的系結環境。 這表示述詞可以自由參考數據表中定義的數據行名稱。 請注意,並非所有系結都必須來自最接近的數據表作業。 例如,「存在」表達式內可能會有多個數據表作業,而任何述詞可能會參考在「存在」表達式外部定義的數據行。 (在 SQL 中,這稱為「相互關聯的子查詢」。)
節點的 DBCOMMANDTREE 結構一般大小為 24 個字節。 不過,運算子可能會將某些特定資訊儲存在節點的值欄位中。 為了方便程序設計,等位位元元包含代表一些可容納在8個字節內之常見類型的分支。 可變長度類型是透過對應 (結構的指標來參考,例如 DBTEXT) 。 等位的辨別子類型為 WORD ,而不是 DBVALUEKIND ,因此可以儲存節點值,例如 DBVALUEKIND_VECTOR |DBVALUEKIND_GUID,DBVALUEKIND_BYREF |DBVALUEKIND_UI4或DBVALUEKIND_SAFEARRAY |DBVALUEKIND_I4。
規格需求
| 需求 | 值 |
|---|---|
| 最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
| 最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
| 標頭 | cmdtree.h |