SQLBindParameter

Si applica a: sìSQL Server (tutte le versioni supportate) Sìdatabase SQL di Azure SìIstanza gestita di SQL di Azure sìAzure Synapse Analytics sìParallel Data Warehouse

SQLBindParameter può eliminare il carico di conversione dei dati quando viene usato per fornire dati per il driver ODBC di Native Client, con un conseguente miglioramento significativo delle prestazioni per i componenti client e SQL Server 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 usate 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, continua a eseguire l'istruzione per gli elementi di 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 utilizza 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 Native Client se un elemento di matrice di una matrice di parametri associati causa un errore SQL Server 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 SQL dati 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 impostato su SQL_SS_LENGTH_UNLIMITED, a indicare che non esiste alcun limite alla dimensione del tipo SQL.

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

SQLBindParameter e parametri con valori di tabella

Analogamente ad altri tipi di parametro, 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 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 di descrizione per i parametri con valori di tabella, vedere Associazione e trasferimento dei dati Table-Valued parametri e valori di colonna.

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 per i parametri di tipo time e datetimeoffset è necessario specificare ValueType 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 (UDT) di grandi dimensioni. Per altre informazioni, vedere Tipi CLR User-Defined di grandi dimensioni (ODBC).

Vedere anche

Dettagli di implementazione dell'API ODBC
Pagina relativa alla funzione SQLBindParameter