Compartilhar via


SQLBindCol

Como regra geral, considere as implicações de usar SQLBindCol para causar conversão de dados. As conversões de associações são processos do cliente, portanto, por exemplo, recuperar um valor de ponto flutuante associado a uma coluna de caracteres faz com que o driver execute a conversão flutuante para caractere localmente quando uma linha é buscada. A função Transact-SQL CONVERT pode ser usada para colocar o custo da conversão de dados no servidor.

Uma instância de SQL Server pode retornar vários conjuntos de linhas de resultado em uma única execução de instrução. Cada conjunto de resultados deve ser associado separadamente. Para obter mais informações sobre como associar vários conjuntos de resultados, consulte SQLMoreResults.

O desenvolvedor pode associar colunas a tipos de dados C específicos SQL Server usando o valor SQL_C_BINARYTargetType . As colunas associadas a tipos específicos SQL Server não são portáteis. Os tipos de dados ODBC C definidos SQL Server específicos correspondem às definições de tipo para DB-Library e DB-Library os desenvolvedores que portam aplicativos podem querer aproveitar esse recurso.

O truncamento de dados de relatório é um processo caro para o driver ODBC SQL Server Native Client. Você pode evitar o truncamento assegurando que todos os buffers de dados associados tenham largura suficiente para retornar dados. Para dados de caracteres, a largura deve incluir espaço para um terminador da cadeia de caracteres quando o comportamento padrão do driver para a terminação da cadeia de caracteres for usado. Por exemplo, associar uma coluna char(5) SQL Server a uma matriz de cinco caracteres resulta em truncamento para cada valor buscado. A associação da mesma coluna a uma matriz de seis caracteres evita a truncagem, fornecendo um elemento de caractere no qual armazenar o terminador nulo. SQLGetData pode ser usado para recuperar com eficiência dados de caracteres longos e dados binários sem truncagem.

Para tipos de dados de valor grande, se o buffer fornecido pelo usuário não for grande o suficiente para manter todo o valor da coluna, SQL_SUCCESS_WITH_INFO será retornado e os "dados de cadeia de caracteres; o aviso de truncamento correto é emitido. O argumento StrLen_or_IndPtr conterá o número de chars/bytes armazenados no buffer.

Suporte de SQLBindCol a recursos aprimorados de data e hora

Os valores de coluna de resultado de tipos de data/hora são convertidos conforme descrito em Conversões de SQL para C. Observe que para recuperar colunas time e datetimeoffset como suas estruturas correspondentes (SQL_SS_TIME2_STRUCT e SQL_SS_TIMESTAMPOFFSET_STRUCT), TargetType deve ser especificado como SQL_C_DEFAULT ou SQL_C_BINARY.

Para obter mais informações, consulte Melhorias de data e hora (ODBC).

Suporte de SQLBindCol para CLR UDTs grandes

SQLBindCol dá suporte a tipos de dados CLR definidos pelo usuário. Para obter mais informações, consulte Tipos de User-Defined clr grandes (ODBC).

Consulte Também

Função SQLBindCol
ODBC API Implementation Details