SQLBindParameter

SQLBindParameter può eliminare il carico prodotto dalla conversione di dati se utilizzato per fornire dati per il driver ODBC di SQL Server Native Client, offrendo prestazioni notevolmente migliori 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 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 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 SQL Server Native Client se un elemento di matrice di una matrice di parametri associati provoca 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 è carattere, ColumnSize è la dimensione in caratteri (non in byte). Se la lunghezza della stringa di dati in byte è maggiore di 8000, ColumnSize deve essere impostato su SQL_SS_LENGTH_UNLIMITED, per indicare che non è presente un limite alla dimensione 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 utilizzato dal driver.

SQLBindParameter e parametri con valori di tabella

Analogamente ad altri tipi di parametro, i parametri con valori di tabella vengono associati tramite 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 di parametri a campi di descrizione per parametri con valori di tabella, vedere Associazione e trasferimento dati di valori di colonna e parametri con valori di tabella.

Per ulteriori 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 di parametro dei tipi di data/ora vengono convertiti come descritto in Conversioni da tipi di dati C a tipi di dati SQL. Si noti che per i parametri di tipo time e datetimeoffsetValueType deve essere specificato come SQL_C_DEFAULT o SQL_C_BINARY se si utilizzano le strutture corrispondenti (SQL_SS_TIME2_STRUCT w SQL_SS_TIMESTAMPOFFSET_STRUCT).

Per ulteriori informazioni, vedere Miglioramenti relativi a 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 ulteriori informazioni, vedere Tipi CLR definiti dall'utente di grandi dimensioni (ODBC).