Campi posticipati

I valori dei campi posticipati non vengono usati quando sono impostati, ma il driver salva gli indirizzi delle variabili per un effetto posticipato. Per il descrittore dei parametri dell’applicazione, il driver usa il contenuto delle variabili al momento della chiamata a SQLExecDirect o SQLExecute. Per un descrittore di riga dell'applicazione, il driver usa il contenuto delle variabili al momento del recupero.

Di seguito sono riportati i campi posticipati:

  • I campi SQL_DESC_DATA_PTR e SQL_DESC_INDICATOR_PTR di un record del descrittore.

  • Il campo SQL_DESC_OCTET_LENGTH_PTR di un record del descrittore dell'applicazione.

  • Nel caso di un recupero a più righe, i campi SQL_DESC_ARRAY_STATUS_PTR e SQL_DESC_ROWS_PROCESSED_PTR di un'intestazione del descrittore.

Quando viene allocato un descrittore, i campi posticipati di ogni record del descrittore hanno inizialmente un valore Null. Il significato dei valori null è il seguente:

  • Se SQL_DESC_ARRAY_STATUS_PTR ha un valore Null, un recupero a più righe non restituisce questo componente delle informazioni di diagnostica per riga.

  • Se SQL_DESC_DATA_PTR ha un valore null, il record non è associato.

  • Se il campo SQL_DESC_OCTET_LENGTH_PTR di un ARD ha un valore null, il driver non restituisce informazioni sulla lunghezza per tale colonna.

  • Se il campo SQL_DESC_OCTET_LENGTH_PTR di un APD ha un valore null e il parametro è una stringa di caratteri, il driver presuppone che la stringa termini con null. Per i parametri dinamici di output, un valore null in questo campo impedisce al driver di restituire informazioni sulla lunghezza. Se il campo SQL_DESC_TYPE non indica un parametro della stringa di caratteri, il campo SQL_DESC_OCTET_LENGTH_PTR viene ignorato.

L'applicazione non deve deallocare o eliminare le variabili usate per i campi posticipati tra il momento in cui le associa ai campi e il momento in cui il driver le legge o le scrive.