참고
인덱싱 서비스는 Windows XP에서 더 이상 지원되지 않으며 Windows 8 현재 사용할 수 없습니다. 대신 클라이언트 쪽 검색에 Windows Search 를 사용하고 서버 쪽 검색에 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 멤버는 명령에 대한 입력으로 다른 명령 개체를 참조합니다. 명령 트리가 모니커를 지원하지 않는 명령 개체를 참조하는 동안 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 작업에는 테이블과 부울 조건자라는 두 개의 입력이 있습니다. (이 작업에 대한 자세한 내용은 순서가 지정된 테이블과 순서가 지정되지 않은 테이블에 대해 두 개의 변형이 있는 연산자를 참조하세요.) "select" 연산을 통해 테이블은 조건자의 바인딩 환경이 됩니다. 즉, 조건자는 테이블에 정의된 열 이름을 자유롭게 참조할 수 있습니다. 모든 바인딩이 가장 가까운 테이블 작업에서 오는 것은 아닙니다. 예를 들어 "exist" 식 내에 여러 테이블 작업이 있을 수 있으며 모든 조건자는 "exist" 식 외부에 정의된 열을 참조할 수 있습니다. SQL에서는 이를 "상호 관련된 하위 쿼리"라고 합니다.
노드에 대한 DBCOMMANDTREE 구조체의 일반적인 크기는 24바이트입니다. 그러나 연산자는 노드의 값 필드에 특정 정보를 저장할 수 있습니다. 프로그래밍 편의를 위해 공용 구조체 필드에는 8바이트 내에 들어갈 수 있는 몇 가지 일반적인 형식을 나타내는 분기가 포함됩니다. 가변 길이 형식은 해당 구조체(예: DBTEXT)에 대한 포인터를 통해 참조됩니다. 공용 구조체에 대한 판별자 형식은 DBVALUEKIND가 아닌 WORD 형식이므로 DBVALUEKIND_VECTOR | 같은 노드 값을 저장할 수 있습니다. DBVALUEKIND_GUID, DBVALUEKIND_BYREF | DBVALUEKIND_UI4 또는 DBVALUEKIND_SAFEARRAY | DBVALUEKIND_I4.
요구 사항
| 요구 사항 | 값 |
|---|---|
| 지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
| 지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
| 머리글 | cmdtree.h |