SQLBindParameter

Si applica a: SQL Server database SQL di Azure Istanza gestita di SQL di Azure azure Synapse Analytics Analytics Platform System (PDW)

SQLBindParameter può eliminare il carico di lavoro della conversione dei dati quando viene usato per fornire dati per il driver ODBC di SQL Server Native Client, con conseguente miglioramento significativo delle prestazioni per i componenti client e server delle applicazioni. Un altro vantaggio è costituito da un'inferiore perdita di precisione durante l'inserimento o l'aggiornamento di tipi di dati numerici approssimativi.

Nota

Quando si inseriscono dati di tipo char e wchar in una colonna immagine, vengono utilizzate le dimensioni dei dati passati, anziché le dimensioni dei dati dopo la conversione in un formato binario.

Se il driver ODBC di SQL Server Native Client rileva un errore in un singolo elemento di matrice di una matrice di parametri, il driver continua a eseguire l'istruzione per gli elementi della matrice rimanenti. Se l'applicazione ha associato una matrice di elementi di stato dei parametri per l'istruzione, le righe di parametri che generano errori possono essere determinate dalla matrice.

Quando si usa il driver ODBC di SQL Server Native Client, specificare SQL_PARAM_INPUT quando si associano parametri di input. Specificare solo SQL_PARAM_OUTPUT o SQL_PARAM_INPUT_OUTPUT quando si associano parametri di stored procedure definiti con la parola chiave OUTPUT.

SQLRowCount non è affidabile con il driver ODBC di SQL Server Native Client se un elemento matrice di una matrice di parametri associati causa un errore nell'esecuzione dell'istruzione. L'attributo SQL_ATTR_PARAMS_PROCESSED_PTR dell'istruzione ODBC indica il numero di righe elaborate prima del verificarsi dell'errore. L'applicazione può quindi attraversare la relativa matrice degli stati dei parametri per individuare il numero di istruzioni eseguite correttamente, se necessario.

Associazione di parametri per i tipi di caratteri SQL

Se il tipo di dati SQL passato è un tipo di carattere, ColumnSize è la dimensione in caratteri (non byte). Se la lunghezza della stringa di dati in byte è maggiore di 8000, ColumnSize deve essere impostata su SQL_SS_LENGTH_UNLIMITED, a indicare che non esiste alcun limite per le dimensioni del tipo SQL.

Ad esempio, se il tipo di dati SQL è SQL_WVARCHAR, ColumnSize non deve essere maggiore di 4000. Se la lunghezza effettiva dei dati è maggiore di 4000, ColumnSize deve essere impostata su SQL_SS_LENGTH_UNLIMITED in modo che nvarchar(max) venga usato dal driver.

SQLBindParameter e parametri con valori di tabella

Analogamente ad altri tipi di parametri, i parametri con valori di tabella sono associati da SQLBindParameter.

Una volta associato un parametro con valori di tabella, vengono associate anche le colonne del parametro. Per associare le colonne, chiamare SQLSetStmtAttr per impostare SQL_SOPT_SS_PARAM_FOCUS sull'ordinale del parametro con valori di tabella. Chiamare quindi SQLBindParameter per ogni colonna nel parametro con valori di tabella. Per tornare alle associazioni di parametro di livello principale, impostare SQL_SOPT_SS_PARAM_FOCUS su 0.

Per informazioni sul mapping dei parametri ai campi descrittori per i parametri con valori di tabella, vedere Binding and Data Transfer of Table-Valued Parameters and Column Values.For information about mapping parameters to descriptor fields for table-valued parameters, see Binding and Data Transfer of Table-Valued Parameters and Column Values.

Per altre informazioni sui parametri con valori di tabella, vedere Parametri con valori di tabella (ODBC).

Supporto di SQLBindParameter per le caratteristiche avanzate di data e ora

I valori dei parametri dei tipi di data/ora vengono convertiti come descritto in Conversioni da C a SQL. Si noti che i parametri di tipo time e datetimeoffset devono avere ValueType specificato come SQL_C_DEFAULT o SQL_C_BINARY se vengono usate le strutture corrispondenti (SQL_SS_TIME2_STRUCT e SQL_SS_TIMESTAMPOFFSET_STRUCT).

Per altre informazioni, vedere Miglioramenti di data e ora (ODBC).

Supporto di SQLBindParameter per i tipi CLR definiti dall'utente di grandi dimensioni

SQLBindParameter supporta tipi CLR definiti dall'utente di grandi dimensioni. Per altre informazioni, vedere Tipi CLR definiti dall'utente (ODBC) di grandi dimensioni.

Vedi anche

Dettagli di implementazione dell'API ODBC
Funzione SQLBindParameter