Condividi tramite


SQLBindCol

Come regola generale, considerare le implicazioni dell'utilizzo di SQLBindCol nel causare la conversione dei dati. Le conversioni per associazione sono processi client. Se ad esempio viene recuperato un valore a virgola mobile associato a una colonna di tipo character, nel driver viene eseguita in locale la conversione da float a character quando viene recuperata una riga. La funzione Transact-SQL CONVERT può essere utilizzata per riportare il costo della conversione dei dati nel server.

Un'istanza di SQL Server può restituire più set di righe di risultati in una singola esecuzione dell'istruzione. Ogni set di risultati deve essere associato separatamente. Per ulteriori informazioni sull'associazione di più set di risultati, vedere SQLMoreResults.

Lo sviluppatore può associare le colonne a tipi di dati C specifici di SQL Server utilizzando il valore TargetTypeSQL_C_BINARY. Le colonne associate a tipi specifici di SQL Server non sono portabili. I tipi di dati ODBC C specifici di SQL Server definiti corrispondono alle definizioni del tipo di DB-Library e gli sviluppatori di DB-Library che si occupano della portabilità delle applicazioni potrebbero sfruttare questa funzionalità.

La segnalazione del troncamento dei dati è un processo dispendioso per il driver ODBC di SQL Server Native Client. È possibile evitare il troncamento assicurandosi che la larghezza di tutti i buffer di dati associati sia sufficiente per restituire i dati. Per i dati di tipo character, la larghezza deve includere lo spazio per un carattere di terminazione della stringa quando viene utilizzato il comportamento predefinito del driver per la terminazione della stringa. Ad esempio, l'associazione di una colonna char(5) di SQL Server a una matrice di cinque caratteri, comporta un troncamento per ogni valore recuperato. L'associazione della stessa colonna a una matrice di sei caratteri evita il troncamento fornendo un elemento character in cui archiviare il terminatore null. SQLGetData può essere utilizzato per recuperare in modo efficiente i dati di tipo binary e long character.

Se per i tipi di dati per valori di grandi dimensioni il buffer fornito dall'utente non è sufficientemente grande per contenere l'intero valore della colonna, viene restituito SQL_SUCCESS_WITH_INFO e viene generato il messaggio di avviso "Troncamento a destra della stringa di dati". L'argomento StrLen_or_IndPtr conterrà il numero di caratteri/byte archiviati nel buffer.

Supporto di SQLBindCol per le funzionalità avanzate di data e ora

I valori della colonna dei risultati dei tipi di data/ora vengono convertiti come descritto in Conversioni dai tipi di dati SQL ai tipi di dati C. Notare che per recuperare le colonne time e datetimeoffset e le relative strutture corrispondenti (SQL_SS_TIME2_STRUCT e SQL_SS_TIMESTAMPOFFSET_STRUCT), TargetType deve essere specificato come SQL_C_DEFAULT o SQL_C_BINARY.

Per ulteriori informazioni, vedere Miglioramenti relativi a data e ora (ODBC).

Supporto di SQLBindCol per tipi CLR definiti dall'utente di grandi dimensioni

SQLBindCol supporta i tipi CLR definiti dall'utente di grandi dimensioni. Per ulteriori informazioni, vedere Tipi CLR definiti dall'utente di grandi dimensioni (ODBC).

Vedere anche

Concetti

Altre risorse