Condividi tramite


Tipi di descrittori

Un descrittore viene usato per descrivere uno dei seguenti elementi:

  • Un set di zero o più parametri. Un descrittore di parametri può essere usato per descrivere:

    • Il buffer dei parametri dell'applicazione, che contiene gli argomenti dinamici di input impostati dall'applicazione o gli argomenti dinamici di output a seguito dell'esecuzione di un'istruzione CALL di SQL.

    • Il buffer dei parametri di implementazione. Per gli argomenti dinamici di input, ciò contiene gli stessi argomenti del buffer dei parametri dell'applicazione, dopo eventuali conversioni di dati che l'applicazione può specificare. Per gli argomenti dinamici di output, ciò contiene gli argomenti restituiti, prima di qualsiasi conversione dei dati che l'applicazione possa specificare.

    Per gli argomenti dinamici di input, l'applicazione deve operare su un descrittore di parametri dell'applicazione prima di eseguire qualsiasi istruzione SQL contenente marcatori di parametro dinamici. Per gli argomenti dinamici di input e output, l'applicazione può specificare tipi di dati diversi da quelli nel descrittore parametri di implementazione per ottenere la conversione dei dati.

  • Una singola riga di dati del database. Un descrittore di riga può essere usato per descrivere:

    • Il buffer di riga di implementazione, che contiene la riga del database. (Questi buffer contengono concettualmente dati scritti o letti dal database. Tuttavia, la forma archiviata dei dati del database non viene specificata. Un database può eseguire una conversione aggiuntiva sui dati dal relativo modulo nel buffer di implementazione.)

    • Il buffer delle righe dell'applicazione, che contiene la riga di dati presentata all'applicazione, dopo eventuali conversioni dei dati che l'applicazione può specificare.

    L'applicazione opera sul descrittore di riga dell'applicazione in tutti i casi in cui i dati delle colonne del database devono essere visualizzati nelle variabili dell'applicazione. Per ottenere la conversione dei dati della colonna, l'applicazione può specificare tipi di dati diversi da quelli nel descrittore riga di implementazione.

I tipi di descrittori sono riepilogati nella tabella seguente.

Tipo di buffer Righe Parametri dinamici
Buffer dell'applicazione Descrittore riga dell’applicazione (ARD) Descrittore parametro dell'applicazione (APD)
Buffer di implementazione Descrittore riga di implementazione (IRD) Descrittore parametri di implementazione (IPD)

Per il parametro o i buffer di riga, se l'applicazione specifica tipi di dati diversi nei record corrispondenti dei descrittori dell'implementazione e dell'applicazione, il driver esegue la conversione dei dati quando usa i descrittori. Ad esempio, può convertire valori numerici e datetime in formato stringa di caratteri. (Per le conversioni valide, vedere Appendice D: Tipi di dati.)

Un descrittore può eseguire ruoli diversi. Istruzioni diverse possono condividere qualsiasi descrittore allocato in modo esplicito dall'applicazione. Un descrittore di riga in un'istruzione può fungere da descrittore di parametro in un'altra istruzione.

È sempre noto se un descrittore specifico è un descrittore applicazione o un descrittore di implementazione, anche se non è ancora stato usato in un'operazione di database. Per i descrittori allocati in modo implicito dall'implementazione, l'implementazione registra la riga predefinita relativa all'handle di istruzione. Qualsiasi descrittore allocato dall'applicazione chiamando SQLAllocHandle è un descrittore applicazione.