Condividi tramite


SQLBindParameter

SQLBindParameterpuò eliminare il carico di lavoro della conversione dei dati quando viene usato per fornire dati per il driver ODBC SQL Server Native Client, con conseguente miglioramento significativo delle prestazioni sia per i componenti client che per i componenti 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 tipi di datichar e wchar in una colonna di tipo image, vengono utilizzate le dimensioni dei dati passati anziché le dimensioni dei dati in seguito alla conversione a un formato binario.

Se il driver ODBC 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 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 SQL Server Native Client se un elemento di 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 alle 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 usata 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 sul numero 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 descrittore per i parametri con valori di tabella, vedere Associazione e trasferimento dati di parametri Table-Valued 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 i parametri di tipo time e datetimeoffset devono avere ValueType specificati 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 i tipi CLR definiti dall'utente di grandi dimensioni. Per altre informazioni, vedere Tipi CLR di grandi dimensioni User-Defined (ODBC).For more information, see Large CLR User-Defined Types (ODBC).

Vedere anche

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