SQLColAttribute
Você pode usar SQLColAttribute
para recuperar um atributo de uma coluna de conjunto de resultados para instruções ODBC preparadas ou executadas. Chamar SQLColAttribute
instruções preparadas faz com que uma viagem de ida e volta SQL Server. O driver ODBC SQL Server Native Client recebe dados de coluna do conjunto de resultados como parte da execução da instrução, portanto, chamar 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 de identificador de coluna ODBC não estão disponíveis em todos os conjuntos de resultados 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. |
SQL Server Native Client driver ODBC usa a instrução SET FMTONLY para reduzir a sobrecarga do servidor quando SQLColAttribute
é chamado para instruções preparadas, mas sem cortes.
Para tipos de valor grandes, SQLColAttribute
retornará os seguintes valores:
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 SQL Server Native Client. O driver ODBC 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 estiver definido como SQL_HC_ON.
SQL Server 2005 introduziu campos de descritor específicos do driver para fornecer informações adicionais para indicar o nome da coleção de esquema 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 | Type | 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, SQL Server 2005 introduziu novos campos de descritor específicos do driver para fornecer informações adicionais para uma coluna UDT (tipo definido pelo usuário) de um conjunto de resultados ou um parâmetro 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 | Type | 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 Parameter and Result Metadata.
Para obter mais informações, consulte Melhorias de data e hora (ODBC).
Suporte do SQLColAttribute a UDTs CLR grandes
SQLColAttribute
dá suporte a UDTs grandes do CLR. Para obter mais informações, consulte Tipos de User-Defined CLR grandes (ODBC).
Suporte do SQLColAttribute a colunas esparsas
SQLColAttribute consulta o novo campo ird (descritor de linha de implementação), SQL_CA_SS_IS_COLUMN_SET, para determinar se uma coluna é uma column_set
coluna.
Para obter mais informações, consulte Suporte a colunas esparsas (ODBC).
Consulte Também
Função SQLColAttribute
ODBC API Implementation Details
SQLSetStmtAttr