다음을 통해 공유


DBCOMMANDTREE 구조체(cmdtree.h)

참고

인덱싱 서비스는 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바이트 이하의 합집합 멤버 데이터 형식의 경우 값 자체가 여기에 저장됩니다. 그렇지 않으면 llvaluepwszValue 멤버이며 데이터에 대한 포인터입니다.

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