Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
O Serviço de Indexação não tem mais suporte a partir do Windows XP e não está disponível para uso a partir de Windows 8. Em vez disso, use a pesquisa do lado do cliente da Pesquisa do Windows e o Microsoft Search Server Express para pesquisa no lado do servidor.
A estrutura DBCOMMANDTREE é a estrutura de dados primária usada para representar qualquer nó em uma árvore de comandos OLE DB, conforme descrito na seção Operadores de Manipulação de Dados e Operadores de Definição de Dados dessa referência. Essa estrutura é usada para cada nó DML (linguagem de manipulação de dados) ou DDL (linguagem de definição de dados) em uma árvore de comandos OLE DB.
Sintaxe
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;
Membros
op
Identificador do operador (2 bytes)
Um valor do tipo DBCOMMANDOP da enumeração DBCOMMANDOPENUM . Ele especifica um operador dos Operadores de Manipulação de Dados ou dos Operadores de Definição de Dados que define a operação a ser realizada no campo associado.
wKind
Discriminatório para a união a seguir (2 bytes)
Um valor do tipo DBVALUEKIND do tipo enumerado DBVALUEKINDENUM . Ele define o tipo de dados do membro da união associado para que o processador de comando saiba como interpretá-lo.
pctFirstChild
Ponteiro para o primeiro filho (4 bytes)
Um ponteiro para a estrutura DBCOMMANDTREE que representa o primeiro filho desse nó da árvore de comando.
pctNextSibling
Ponteiro para irmão (4 bytes)
Um ponteiro para a estrutura DBCOMMANDTREE que representa o próximo filho desse nó da árvore de comando.
value
A união representa diretamente os campos que se encaixam em 8 bytes. Os comentários listam DBVALUEKIND e DBTYPE correspondentes a cada campo.
Uma união para manter o valor de cada tipo de dados com suporte por esse provedor OLE DB. Para qualquer tipo de dados de membro sindical que contenha 8 bytes ou menos, o valor em si é armazenado aqui. Caso contrário, llvalue é um membro pwszValue , um ponteiro para os dados.
Um membro pwszValue é uma cadeia de caracteres; sua interpretação é deixada para o provedor. Em outras palavras, o consumidor deve entender o método de resolução de nomes do provedor. Para componentes de comando "passados" para outro provedor, cabe ao provedor receptor interpretar a cadeia de caracteres.
O membro pMoniker é usado para objetos vinculados não resolvidos, em tabelas e funções específicas.
O membro pRowset é usado para fazer referência a um conjunto de linhas aberto no momento como entrada para um comando. A maioria dos provedores falhará se um método IPersist for invocado enquanto a árvore de comando se referir a um conjunto de linhas aberto.
O membro pCommand faz referência a outro objeto de comando como entrada para um comando. A maioria dos provedores falhará se um método IPersist for invocado enquanto a árvore de comando se referir a um objeto de comando que não dá suporte a monikers.
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
um DBVALUEKIND_BYREF genérico
value.pdbprobValue
DBVALUEKIND_PROBABILISTIC
value.pdbreldocValue
DBVALUEKIND_RELEVANTDOCUMENT
hrError
Indicador de erro, detalhes em informações de erro estendido (4 bytes)
Comentários
Muitas operações criam um ambiente de associação. Por exemplo, uma operação de DBOP_select tem duas entradas: uma tabela e um predicado booliano. (Para obter mais informações sobre essa operação, consulte Operadores com duas variantes para tabelas ordenadas e não ordenadas.) Em virtude da operação "select", a tabela se torna o ambiente de associação para o predicado. Isso significa que o predicado pode referenciar livremente os nomes de coluna definidos na tabela. Observe que nem todas as associações devem vir da operação de tabela mais próxima. Por exemplo, pode haver várias operações de tabela dentro de uma expressão "exist" e qualquer predicado pode fazer referência a uma coluna definida fora da expressão "exist". (No SQL, isso é chamado de "subconsulta correlacionada".
O tamanho típico de uma estrutura DBCOMMANDTREE para um nó é de 24 bytes. No entanto, os operadores podem armazenar algumas informações específicas no campo de valor do nó. Para conveniência de programação, o campo união inclui branches que representam alguns tipos comuns que podem caber dentro de 8 bytes. Tipos de comprimento variável são referenciados por meio de um ponteiro para a estrutura correspondente (como DBTEXT). O discriminatório para a união é do tipo WORD em vez de DBVALUEKIND para que seja possível armazenar valores de nó, como DBVALUEKIND_VECTOR | DBVALUEKIND_GUID, DBVALUEKIND_BYREF | DBVALUEKIND_UI4 ou DBVALUEKIND_SAFEARRAY | DBVALUEKIND_I4.
Requisitos
| Requisito | Valor |
|---|---|
| Cliente mínimo com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
| Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
| Cabeçalho | cmdtree.h |