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çã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 ponteiro 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 de agregação 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 consulta 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).
Consulte também
Conceitos
Detalhes de implementação da API ODBC