Condividi tramite


Assegnazione di archiviazione

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureAzure Synapse AnalyticsPiattaforma di strumenti analitici (PDW)

In un'applicazione è possibile assegnare l'archiviazione per i risultati prima o dopo l'esecuzione di un'istruzione SQL. Se la preparazione o l'esecuzione dell'istruzione SQL avviene prima, è possibile richiedere informazioni sul set di risultati prima di archiviare i risultati. Se ad esempio il set di risultati non è noto, è necessario recuperare il numero di colonne prima dell'assegnazione dell'archiviazione.

Per associare l'archiviazione per una colonna di dati, un'applicazione chiama SQLBindCol e la passa:

  • Tipo di dati nel quale devono essere convertiti i dati.

  • Indirizzo di un buffer di output per i dati.

    L'applicazione deve allocare questo buffer, e deve essere di dimensioni sufficienti a contenere i dati nel formato nel quale vengono convertiti.

  • Lunghezza del buffer di output.

    Questo valore viene ignorato se i dati restituiti hanno una larghezza fissa in C, ad esempio un numero intero, un numero reale o una struttura di data.

  • Indirizzo di un buffer di archiviazione nel quale restituire il numero di byte dei dati disponibili.

Un'applicazione può inoltre associare colonne del set di risultati a matrici di variabili di programma per consentire il supporto del recupero di righe in blocchi. Sono disponibili due tipi diversi di associazione di matrici:

  • L'associazione a livello di colonna è completa quando ogni colonna è associata alla rispettiva matrice di variabili.

    L'associazione a livello di colonna viene specificata chiamando SQLSetStmtAttr con Attribute impostato su SQL_ATTR_ROW_BIND_TYPE e ValuePtr impostato su SQL_BIND_BY_COLUMN. Tutte le matrici devono avere lo stesso numero di elementi.

  • L'associazione a livello di riga è completa quando tutti i parametri dell'istruzione SQL vengono associati come un'unità a una matrice di strutture contenenti le singole variabili per i parametri.

    L'associazione per riga viene specificata chiamando SQLSetStmtAttr con Attribute impostato su SQL_ATTR_ROW_BIND_TYPE e ValuePtr impostato sulle dimensioni della struttura che contiene le variabili che riceveranno le colonne del set di risultati.

Viene inoltre impostato SQL_ATTR_ROW_ARRAY_SIZE sul numero di elementi presenti nelle matrici di colonne o di righe e vengono impostati SQL_ATTR_ROW_STATUS_PTR e SQL_ATTR_ROWS_FETCHED_PTR.

Vedi anche

Risultati dell'elaborazione (ODBC)