Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nota
Il servizio di indicizzazione non è più supportato a partire da Windows XP e non è disponibile per l'uso a partire da Windows 8. Usare invece Windows Search per la ricerca sul lato client e Microsoft Search Server Express per la ricerca sul lato server.
La struttura DBCOMMANDTREE è la struttura dei dati primaria usata per rappresentare qualsiasi nodo in un albero dei comandi OLE DB, come descritto nella sezione Operatori di manipolazione dati e operatori di definizione dei dati di questo riferimento. Questa struttura viene usata per ogni nodo DML (Data Manipulation Language) o Data Definition Language (DDL) in un albero dei comandi OLE DB.
Sintassi
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;
Members
op
Identificatore dell'operatore (2 byte)
Valore di tipo DBCOMMANDOP dall'enumerazione DBCOMMANDOPENUM . Specifica un operatore degli operatori di manipolazione dei dati o degli operatori di definizione dei dati che definisce l'operazione da eseguire nel campo associato.
wKind
Discriminazione per l'unione seguente (2 byte)
Valore di tipo DBVALUEKIND dal tipo DBVALUEKINDENUM enumerato. Definisce il tipo di dati del membro dell'unione associata in modo che il responsabile del comando sappia come interpretarlo.
pctFirstChild
Puntatore al primo figlio (4 byte)
Puntatore alla struttura DBCOMMANDTREE che rappresenta il primo figlio di questo nodo dell'albero dei comandi.
pctNextSibling
Puntatore a pari (4 byte)
Puntatore alla struttura DBCOMMANDTREE che rappresenta il figlio successivo di questo nodo dell'albero dei comandi.
value
Union rappresenta direttamente i campi che corrispondono a 8 byte. I commenti elencano DBVALUEKIND e DBTYPE corrispondenti a ogni campo.
Unione per contenere il valore per ogni tipo di dati supportato da questo provider OLE DB. Per qualsiasi tipo di dati membro dell'unione che contiene 8 byte o minore, il valore stesso viene archiviato qui. In caso contrario, llvalue è un membro pwszValue , un puntatore ai dati.
Un membro pwszValue è una stringa; la sua interpretazione viene lasciata al provider. In altre parole, il consumer deve comprendere il metodo di risoluzione dei nomi del provider. Per i componenti dei comandi "passati" a un altro provider, viene lasciato al provider di ricezione per interpretare la stringa.
Il membro pMoniker viene usato per oggetti collegati non risolti, in particolare tabelle e funzioni.
Il membro pRowset viene usato per fare riferimento a un set di righe attualmente aperto come input per un comando. La maggior parte dei provider avrà esito negativo se viene richiamato un metodo IPersist mentre l'albero dei comandi fa riferimento a un set di righe aperto.
Il membro pCommand fa riferimento a un altro oggetto comando come input per un comando. La maggior parte dei provider avrà esito negativo se viene richiamato un metodo IPersist mentre l'albero dei comandi fa riferimento a un oggetto comando che non supporta i moniker.
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
un DBVALUEKIND_BYREF generico
value.pdbprobValue
DBVALUEKIND_PROBABILISTIC
value.pdbreldocValue
DBVALUEKIND_RELEVANTDOCUMENT
hrError
Indicatore di errore, dettagli nelle informazioni sugli errori estesi (4 byte)
Commenti
Molte operazioni creano un ambiente di associazione. Ad esempio, un'operazione di DBOP_select include due input, una tabella e un predicato booleano. Per altre informazioni su questa operazione, vedere Operatori con due varianti per tabelle ordinate e non ordinate. A causa dell'operazione "select", la tabella diventa l'ambiente di associazione per il predicato. Ciò significa che il predicato può fare riferimento liberamente ai nomi di colonna definiti nella tabella. Si noti che non tutte le associazioni devono venire dall'operazione di tabella più vicina. Ad esempio, potrebbero essere presenti più operazioni di tabella all'interno di un'espressione "exist" e qualsiasi predicato può fare riferimento a una colonna definita all'esterno dell'espressione "exist". In SQL viene chiamato "sottoquery correlato".
Le dimensioni tipiche di una struttura DBCOMMANDTREE per un nodo sono 24 byte. Tuttavia, gli operatori possono archiviare alcune informazioni specifiche nel campo valore del nodo. Per praticità di programmazione, il campo unione include rami che rappresentano alcuni tipi comuni che possono adattarsi all'interno di 8 byte. I tipi a lunghezza variabile vengono a cui viene fatto riferimento tramite un puntatore alla struttura corrispondente , ad esempio DBTEXT. La discriminazione per l'unione è di tipo WORD anziché DBVALUEKIND in modo che sia possibile archiviare i valori dei nodi, ad esempio DBVALUEKIND_VECTOR | DBVALUEKIND_GUID, DBVALUEKIND_BYREF | DBVALUEKIND_UI4 o DBVALUEKIND_SAFEARRAY | DBVALUEKIND_I4.
Requisiti
| Requisito | Valore |
|---|---|
| Client minimo supportato | Windows 2000 Professional [solo app desktop] |
| Server minimo supportato | Windows 2000 Server [solo app desktop] |
| Intestazione | cmdtree.h |