Partilhar via


SQLColAttribute

Você pode usar SQLColAttribute para recuperar um atributo de uma coluna de conjunto de resultados para instruções ODBC preparadas ou executadas. A chamada de SQLColAttribute em instruções preparadas causa uma viagem de ida e volta ao SQL Server. O driver ODBC do SQL Server Native Client recebe os dados da coluna de conjunto de resultados como parte da execução da instrução, por isso a chamada de SQLColAttribute após a conclusão de SQLExecute ou SQLExecDirect não envolve uma viagem de ida e volta do servidor.

ObservaçãoObservação

Os atributos do identificador de coluna ODBC não estão disponíveis em todos os conjuntos de resultados do SQL Server.

Identificador de campo

Descrição

SQL_COLUMN_TABLE_NAME

Disponível em conjuntos de resultados recuperados de instruções que geram cursores de servidor ou em instruções SELECT executadas que contêm uma cláusula FOR BROWSE.

SQL_DESC_BASE_COLUMN_NAME

Disponível em conjuntos de resultados recuperados de instruções que geram cursores de servidor ou em instruções SELECT executadas que contêm uma cláusula FOR BROWSE.

SQL_DESC_BASE_TABLE_NAME

Disponível em conjuntos de resultados recuperados de instruções que geram cursores de servidor ou em instruções SELECT executadas que contêm uma cláusula FOR BROWSE.

SQL_DESC_CATALOG_NAME

Nome do banco de dados. Disponível em conjuntos de resultados recuperados de instruções que geram cursores de servidor ou em instruções SELECT executadas que contêm uma cláusula FOR BROWSE.

SQL_DESC_LABEL

Disponível em todos os conjuntos de resultados. O valor é idêntico ao valor do campo SQL_DESC_NAME.

O campo só terá comprimento zero se uma coluna for o resultado de uma expressão e a expressão não contiver uma atribuição de rótulo.

SQL_DESC_NAME

Disponível em todos os conjuntos de resultados. O valor é idêntico ao valor do campo SQL_DESC_LABEL.

O campo só terá comprimento zero se uma coluna for o resultado de uma expressão e a expressão não contiver uma atribuição de rótulo.

SQL_DESC_SCHEMA_NAME

Nome do proprietário. Disponível em conjuntos de resultados recuperados de instruções que geram cursores de servidor ou em instruções SELECT executadas que contêm uma cláusula FOR BROWSE.

Disponível somente se o nome do proprietário for especificado para a coluna na instrução SELECT.

SQL_DESC_TABLE_NAME

Disponível em conjuntos de resultados recuperados de instruções que geram cursores de servidor ou em instruções SELECT executadas que contêm uma cláusula FOR BROWSE.

SQL_DESC_UNNAMED

SQL_NAMED para todas as colunas de um conjunto de resultados, a menos que uma coluna seja o resultado de uma expressão que não contém uma atribuição de rótulo como parte da expressão. Quando SQL_DESC_UNNAMED retorna SQL_UNNAMED, todos os atributos de identificador de coluna ODBC contêm cadeias de caracteres de comprimento zero para a coluna.

O driver ODBC do SQL Server Native Client usa a instrução SET FMTONLY para reduzir a sobrecarga de servidor quando SQLColAttribute é chamado para instruções preparadas porém não executadas.

Para tipos de valores grandes, SQLColAttribute retornará os valores a seguir:

Identificador de campo

Descrição de alteração

SQL_DESC_DISPLAY_SIZE

Esse é o número máximo de caracteres necessários para exibir dados da coluna. Para colunas de tipos de valores grandes, o valor retornado é SQL_SS_LENGTH_UNLIMITED.

SQL_DESC_LENGTH

Retorna o comprimento real da coluna no conjunto de resultados. Para colunas de tipos de valores grandes, o valor retornado é SQL_SS_LENGTH_UNLIMITED.

SQL_DESC_OCTET_LENGTH

Retorna o comprimento de máximo de uma coluna de tipo de valor grande. SQL_SS_LENGTH_UNLIMITED é usado para indicar tamanho ilimitado.

SQL_DESC_PRECISION

Retorna o valor SQL_SS_LENGTH_UNLIMITED para colunas de tipo de valor grande.

SQL_DESC_TYPE

Retorna SQL_VARCHAR, SQL_WVARCHAR e SQL_VARBINARY para tipos de valor grande.

SQL_DESC_TYPE_NAME

Retorna "varchar", "varbinary", "nvarchar" para os tipos de valor grande.

Para todas as versões, os atributos de coluna são informados somente para o primeiro conjunto de resultados quando vários conjuntos são gerados por um lote preparado de instruções SQL.

Os atributos de coluna a seguir são extensões expostas pelo driver ODBC do SQL Server Native Client. O driver ODBC do SQL Server Native Client retorna todos os valores no parâmetro NumericAttrPtr. Os valores são retornados como SDWORD (signed long) com exceção de SQL_CA_SS_COMPUTE_BYLIST, que é um apontador para uma matriz de WORD.

Identificador de campo

Valor retornado

SQL_CA_SS_COLUMN_HIDDEN*

TRUE se a coluna referenciada fizer parte de uma chave primária oculta criada para suportar uma instrução SELECT Transact-SQL que contém FOR BROWSE.

SQL_CA_SS_COLUMN_ID

Posição ordinal de uma coluna de resultados de cláusula COMPUTE na instrução SELECT Transact-SQL atual.

SQL_CA_SS_COLUMN_KEY *

TRUE se a coluna referenciada fizer parte de uma chave primária para a linha e a instrução SELECT Transact-SQL contiver FOR BROWSE.

SQL_CA_SS_COLUMN_OP

Inteiro que especifica o operador agregado responsável pelo valor em uma coluna de cláusula COMPUTE. As definições dos valores inteiros estão em sqlncli.h.

SQL_CA_SS_COLUMN_ORDER

Posição ordinal da coluna em uma cláusula ORDER BY da instrução SELECT Transact-SQL ou ODBC.

SQL_CA_SS_COLUMN_SIZE

Comprimento máximo, em bytes, necessário para associar um valor de dados recuperado da coluna a uma variável SQL_C_BINARY.

SQL_CA_SS_COLUMN_SSTYPE

Tipo de dados nativo de dados armazenados na coluna do SQL Server. As definições dos valores de tipo estão em sqlncli.h.

SQL_CA_SS_COLUMN_UTYPE

Tipo de dados básico do tipo de dados definido pelo usuário da coluna do SQL Server. As definições dos valores de tipo estão em sqlncli.h.

SQL_CA_SS_COLUMN_VARYLEN

TRUE se os dados da coluna puderem variar em comprimento; ou FALSE em caso contrário.

SQL_CA_SS_COMPUTE_BYLIST

Ponteiro para uma matriz de WORD (unsigned short) que especifica as colunas usadas na frase BY de uma cláusula COMPUTE. Se a cláusula COMPUTE não especificar uma frase BY, um ponteiro NULL será retornado.

O primeiro elemento da matriz contém a contagem de colunas de lista BY. Os elementos adicionais são os ordinais da coluna.

SQL_CA_SS_COMPUTE_ID

computeid de uma linha que é o resultado de uma cláusula COMPUTE na instrução SELECT Transact-SQL atual.

SQL_CA_SS_NUM_COMPUTES

Número de cláusulas COMPUTE especificado na instrução SELECT Transact-SQL atual.

SQL_CA_SS_NUM_ORDERS

Número de colunas especificado em uma cláusula ORDER BY da instrução SELECT Transact-SQL ou ODBC.

*   Disponível se o atributo de instrução SQL_SOPT_SS_HIDDEN_COLUMNS for definido como SQL_HC_ON.

O SQL Server 2005 introduziu campos de descritor específicos de driver para fornecer informações adicionais para denotar o nome da coleção de esquemas XML, o nome do esquema e o nome do catálogo, respectivamente. Essas propriedades não exigem aspas ou um caractere de escape se eles contiverem caracteres não alfanuméricos. A tabela a seguir lista esses novos campos de descritor:

Nome da coluna

Tipo

Descrição

SQL_CA_SS_XML_SCHEMACOLLECTION_CATALOG_NAME

CharacterAttributePtr

O nome do catálogo em que é definido um nome da coleção de esquemas XML. Se não for possível localizar o nome do catálogo, essa variável conterá uma cadeia de caracteres vazia.

Essas informações são retornadas do campo de registro SQL_DESC_SS_XML_SCHEMACOLLECTION_CATALOG_NAME do IRD, que é um campo de leitura-gravação.

SQL_CA_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME

CharacterAttributePtr

O nome do esquema no qual é definido um nome da coleção de esquemas XML. Se não for possível localizar o nome do esquema, essa variável conterá uma cadeia de caracteres vazia.

Essas informações são retornadas do campo de registro SQL_DESC_SS_XML_SCHEMACOLLECTION_SCHEMA_NAME do IRD, que é um campo de leitura-gravação.

SQL_CA_SS_XML_SCHEMACOLLECTION_NAME

CharacterAttributePtr

O nome de uma coleção de esquemas XML. Se não for possível localizar o nome, essa variável conterá uma cadeia de caracteres vazia.

Essas informações são retornadas do campo de registro SQL_DESC_SS_XML_SCHEMACOLLECTION_NAME do IRD, que é um campo de leitura-gravação.

Além disso, o SQL Server 2005 introduziu campos de descritor específicos de driver para fornecer informações adicionais para uma coluna de UDT (tipo definido pelo usuário) de um conjunto de resultados ou um parâmetro de UDT de um procedimento armazenado ou consulta parametrizada. Essas propriedades não exigem aspas ou um caractere de escape se eles contiverem caracteres não alfanuméricos. A tabela a seguir lista esses novos campos de descritor:

Nome da coluna

Tipo

Descrição

SQL_CA_SS_UDT_CATALOG_NAME

CharacterAttributePtr

O nome do catálogo que contém o UDT.

SQL_CA_SS_UDT_SCHEMA_NAME

CharacterAttributePtr

O nome do esquema que contém o UDT.

SQL_CA_SS_UDT_TYPE_NAME

CharacterAttributePtr

O nome do UDT.

SQL_CA_SS_UDT_ASSEMBLY_TYPE_NAME

CharacterAttributePtr

O nome qualificado do assembly do UDT.

O identificador do campo de descritor SQL_DESC_TYPE_NAME existente é usado para indicar o nome do UDT. O campo SQL_DESC_TYPE para uma coluna de tipo UDT é SQL_SS_UDT.

Suporte do SQLColAttribute a recursos aprimorados de data e hora

Para obter os valores retornados para tipos de data/hora, consulte a seção sobre informações retornadas em campos IRD em Parâmetro e metadados de resultado.

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

Suporte do SQLColAttribute a UDTs CLR grandes

O SQLColAttribute suporta UDTs CLR grandes. Para obter mais informações, consulte Tipos de dados CLR grandes definidos pelo usuário (ODBC).

Suporte do SQLColAttribute a colunas esparsas

O SQLColAttribute examina o novo campo de IRD (descritor de linha de implementação), SQL_CA_SS_IS_COLUMN_SET, para determinar se uma coluna é column_set.

Para obter mais informações, consulte Suporte a colunas esparsas (ODBC).