Condividi tramite


SQLBindCol

Come regola generale, prendere in considerazione le implicazioni dell'uso di SQLBindCol per 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 usata per inserire 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 di istruzione. Ogni set di risultati deve essere associato separatamente. Per altre informazioni sull'associazione per più set di risultati, vedere SQLMoreResults.

Lo sviluppatore può associare colonne a tipi di dati C specifici SQL Server usando il valore SQL_C_BINARYTargetType . Le colonne associate a tipi specifici di SQL Server non sono portabili. I tipi di dati ODBC C definiti SQL Server corrispondono alle definizioni dei tipi per la libreria di database e DB-Library gli sviluppatori che eseguano la conversione di applicazioni possono sfruttare questa funzionalità.

Il troncamento dei dati per la creazione di report è un processo costoso per il driver ODBC 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 SQL Server char(5) a una matrice di cinque caratteri comporta il 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 usato per recuperare in modo efficiente dati di tipo long character e binary senza troncamento.

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

Supporto di SQLBindCol per le caratteristiche avanzate di data e ora

I valori delle colonne dei risultati dei tipi di data/ora vengono convertiti come descritto in Conversioni da SQL a C. Si noti che per recuperare le colonne time e datetimeoffset come strutture corrispondenti (SQL_SS_TIME2_STRUCT e SQL_SS_TIMESTAMPOFFSET_STRUCT), TargetType deve essere specificato come SQL_C_DEFAULT o SQL_C_BINARY.

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

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

SQLBindCol supporta 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

Funzione SQLBindCol
Dettagli di implementazione dell'API ODBC