Handle del descrittore

Un descrittore è una raccolta di metadati che descrive i parametri di un'istruzione SQL o le colonne di un set di risultati, come illustrato dall'applicazione o dal driver (noto anche come implementazione). Pertanto, un descrittore può ricoprire uno dei quattro ruoli seguenti:

  • Descrittore parametri dell'applicazione (APD). Contiene informazioni sui buffer dell'applicazione associati ai parametri in un'istruzione SQL, ad esempio i relativi indirizzi, lunghezze e tipi di dati C.

  • Descrittore parametri di implementazione (IPD). Contiene informazioni sui parametri in un'istruzione SQL, ad esempio i relativi tipi di dati SQL, lunghezze e valori Null.

  • Descrittore riga dell’applicazione (ARD). Contiene informazioni sui buffer dell'applicazione associati alle colonne di un set di risultati, ad esempio i relativi indirizzi, lunghezze e tipi di dati C.

  • Descrittore riga di implementazione (IRD). Contiene informazioni sulle colonne di un set di risultati, ad esempio i relativi tipi di dati SQL, le lunghezze e il supporto dei valori Null.

Quando viene allocata un'istruzione, vengono allocati automaticamente quattro descrittori (uno per ciascun ruolo). Questi sono noti come descrittori allocati automaticamente e sono sempre associati a tale istruzione. Le applicazioni possono anche allocare descrittori con SQLAllocHandle. Questi sono noti come descrittori allocati in modo esplicito. Vengono allocati in una connessione e possono essere associati a una o più istruzioni su tale connessione per svolgere il ruolo di APD o ARD su tali istruzioni.

La maggior parte delle operazioni in ODBC può essere eseguita senza l'uso esplicito dei descrittori da parte dell'applicazione. Tuttavia, i descrittori forniscono una scorciatoia pratica per alcune operazioni. Si supponga, ad esempio, che un'applicazione voglia inserire dati da due set diversi di buffer. Per usare il primo set di buffer, chiama ripetutamente SQLBindParameter per associarli ai parametri di un'istruzione INSERT e quindi eseguire l'istruzione. Per usare il secondo set di buffer, ripete questo processo. In alternativa, potrebbe configurare associazioni al primo set di buffer in un descrittore e al secondo set di buffer in un altro descrittore. Per passare da un set di associazioni all'altro, l'applicazione chiamerà semplicemente SQLSetStmtAttr e assocerà il descrittore corretto all'istruzione come APD.

Per altre informazioni sui descrittori, vedere Tipi di descrittori.