Função SQLProcedureColumns
de conformidade
Versão introduzida: ODBC 1.0 Standards Compliance: ODBC
de Resumo do
SQLProcedureColumns retorna a lista de parâmetros de entrada e saída, bem como as colunas que compõem o conjunto de resultados para os procedimentos especificados. O driver retorna as informações como um conjunto de resultados na instrução especificada.
Sintaxe
SQLRETURN SQLProcedureColumns(
SQLHSTMT StatementHandle,
SQLCHAR * CatalogName,
SQLSMALLINT NameLength1,
SQLCHAR * SchemaName,
SQLSMALLINT NameLength2,
SQLCHAR * ProcName,
SQLSMALLINT NameLength3,
SQLCHAR * ColumnName,
SQLSMALLINT NameLength4);
Argumentos
StatementHandle
[Entrada] Identificador de instrução.
CatalogName
[Entrada] Nome do catálogo de procedimentos. Se um driver dá suporte a catálogos para alguns procedimentos, mas não para outros, como quando o driver recupera dados de DBMSs diferentes, uma cadeia de caracteres vazia ("") indica esses procedimentos que não têm catálogos.
CatalogName não pode conter um padrão de pesquisa de cadeia de caracteres.
Se o atributo de instrução SQL_ATTR_METADATA_ID estiver definido como SQL_TRUE, CatalogName será tratado como um identificador e seu caso não será significativo. Se for SQL_FALSE, CatalogName será um argumento comum; é tratado literalmente, e seu caso é significativo. Para obter mais informações, consulte argumentos em funções de catálogo.
NameLength1
[Entrada] Comprimento em caracteres de *CatalogName.
[Entrada] Padrão de pesquisa de cadeia de caracteres para nomes de esquema de procedimento. Se um driver der suporte a esquemas para alguns procedimentos, mas não para outros, como quando o driver recupera dados de DBMSs diferentes, uma cadeia de caracteres vazia ("") indica esses procedimentos que não têm esquemas.
Se o atributo de instrução SQL_ATTR_METADATA_ID estiver definido como SQL_TRUE, SchemaName será tratado como um identificador e seu caso não será significativo. Se for SQL_FALSE, schemaName será um argumento de valor padrão; é tratado literalmente, e seu caso é significativo.
NameLength2
[Entrada] Comprimento em caracteres de *SchemaName.
ProcName
[Entrada] Padrão de pesquisa de cadeia de caracteres para nomes de procedimento.
Se o atributo de instrução SQL_ATTR_METADATA_ID estiver definido como SQL_TRUE, ProcName será tratado como um identificador e seu caso não será significativo. Se for SQL_FALSE, procName será um argumento de valor padrão; é tratado literalmente, e seu caso é significativo.
[Entrada] Comprimento em caracteres de *ProcName.
ColumnName
[Entrada] Padrão de pesquisa de cadeia de caracteres para nomes de coluna.
Se o atributo de instrução SQL_ATTR_METADATA_ID estiver definido como SQL_TRUE, ColumnName será tratado como um identificador e seu caso não será significativo. Se for SQL_FALSE, ColumnName será um argumento de valor padrão; é tratado literalmente, e seu caso é significativo.
NameLength4
[Entrada] Comprimento em caracteres de *ColumnName.
Retorna
SQL_SUCCESS, SQL_SUCCESS_WITH_INFO, SQL_STILL_EXECUTING, SQL_ERROR ou SQL_INVALID_HANDLE.
Diagnostics
Quando
Comentários
Essa função normalmente é usada antes da execução da instrução para recuperar informações sobre parâmetros de procedimento e as colunas que compõem o conjunto de resultados ou conjuntos retornados pelo procedimento, se houver. Para obter mais informações, consulte Procedures.
Nota
SQLProcedureColumns pode não retornar todas as colunas usadas por um procedimento. Por exemplo, um driver pode retornar apenas informações sobre os parâmetros usados por um procedimento e não as colunas em um conjunto de resultados gerado.
Os argumentos SchemaName, ProcNamee ColumnName aceitam padrões de pesquisa. Para obter mais informações sobre padrões de pesquisa válidos, consulte argumentos de valor padrão.
Nota
Para obter mais informações sobre o uso geral, argumentos e dados retornados de funções de catálogo ODBC, consulte Funções de Catálogo.
SQLProcedureColumns retorna os resultados como um conjunto de resultados padrão, ordenado por PROCEDURE_CAT, PROCEDURE_SCHEM, PROCEDURE_NAME e COLUMN_TYPE. Os nomes de coluna são retornados para cada procedimento na seguinte ordem: o nome do valor retornado, os nomes de cada parâmetro na invocação do procedimento (na ordem de chamada) e, em seguida, os nomes de cada coluna no conjunto de resultados retornados pelo procedimento (em ordem de coluna).
Os aplicativos devem associar colunas específicas do driver em relação ao final do conjunto de resultados. Para obter mais informações, consulte dados retornados por funções de catálogo.
Para determinar os comprimentos reais das colunas PROCEDURE_CAT, PROCEDURE_SCHEM, PROCEDURE_NAME e COLUMN_NAME, um aplicativo pode chamar SQLGetInfo com as opções SQL_MAX_CATALOG_NAME_LEN, SQL_MAX_SCHEMA_NAME_LEN, SQL_MAX_PROCEDURE_NAME_LEN e SQL_MAX_COLUMN_NAME_LEN.
As colunas a seguir foram renomeada para ODBC 3.x. As alterações de nome da coluna não afetam a compatibilidade com versões anteriores porque os aplicativos são associados por número de coluna.
Coluna ODBC 2.0 | ODBC 3. colunax |
---|---|
PROCEDURE_QUALIFIER | PROCEDURE_CAT |
PROCEDIMENTO _OWNER | PROCEDURE_SCHEM |
PRECISÃO | COLUMN_SIZE |
COMPRIMENTO | BUFFER_LENGTH |
ESCALA | DECIMAL_DIGITS |
BASE | NUM_PREC_RADIX |
As colunas a seguir foram adicionadas ao conjunto de resultados retornado por SQLProcedureColumns para ODBC 3.x:
COLUMN_DEF
DATETIME_CODE
CHAR_OCTET_LENGTH
ORDINAL_POSITION
IS_NULLABLE
A tabela a seguir lista as colunas no conjunto de resultados. Colunas adicionais além da coluna 19 (IS_NULLABLE) podem ser definidas pelo driver. Um aplicativo deve obter acesso a colunas específicas do driver contando a partir do final do conjunto de resultados em vez de especificar uma posição ordinal explícita. Para obter mais informações, consulte dados retornados por funções de catálogo.
Nome da coluna | Número da coluna | Tipo de dado | Comentários |
---|---|---|---|
PROCEDURE_CAT (ODBC 2.0) | 1 | Varchar | Nome do catálogo de procedimentos; NULL se não for aplicável à fonte de dados. Se um driver der suporte a catálogos para alguns procedimentos, mas não para outros, como quando o driver recupera dados de DBMSs diferentes, ele retorna uma cadeia de caracteres vazia ("") para aqueles procedimentos que não têm catálogos. |
PROCEDURE_SCHEM (ODBC 2.0) | 2 | Varchar | Nome do esquema de procedimento; NULL se não for aplicável à fonte de dados. Se um driver der suporte a esquemas para alguns procedimentos, mas não para outros, como quando o driver recupera dados de DBMSs diferentes, ele retorna uma cadeia de caracteres vazia ("") para aqueles procedimentos que não têm esquemas. |
PROCEDURE_NAME (ODBC 2.0) | 3 | Varchar não NULL | Nome do procedimento. Uma cadeia de caracteres vazia é retornada para um procedimento que não tem um nome. |
COLUMN_NAME (ODBC 2.0) | 4 | Varchar não NULL | Nome da coluna do procedimento. O driver retorna uma cadeia de caracteres vazia para uma coluna de procedimento que não tem um nome. |
COLUMN_TYPE (ODBC 2.0) | 5 | Smallint não NULL | Define a coluna de procedimento como um parâmetro ou uma coluna de conjunto de resultados: SQL_PARAM_TYPE_UNKNOWN: a coluna de procedimento é um parâmetro cujo tipo é desconhecido. (ODBC 1.0) SQL_PARAM_INPUT: a coluna de procedimento é um parâmetro de entrada. (ODBC 1.0) SQL_PARAM_INPUT_OUTPUT: a coluna de procedimento é um parâmetro de entrada/saída. (ODBC 1.0) SQL_PARAM_OUTPUT: a coluna de procedimento é um parâmetro de saída. (ODBC 2.0) SQL_RETURN_VALUE: a coluna de procedimento é o valor retornado do procedimento. (ODBC 2.0) SQL_RESULT_COL: a coluna de procedimento é uma coluna de conjunto de resultados. (ODBC 1.0) |
DATA_TYPE (ODBC 2.0) | 6 | Smallint não NULL | Tipo de dados SQL. Pode ser um tipo de dados SQL ODBC ou um tipo de dados SQL específico do driver. Para tipos de dados datetime e interval, essa coluna retorna os tipos de dados concisos (por exemplo, SQL_TYPE_TIME ou SQL_INTERVAL_YEAR_TO_MONTH). Para obter uma lista de tipos de dados ODBC SQL válidos, consulte tipos de dados SQL no Apêndice D: Tipos de Dados. Para obter informações sobre tipos de dados SQL específicos do driver, consulte a documentação do driver. |
TYPE_NAME (ODBC 2.0) | 7 | Varchar não NULL | Nome do tipo de dados dependente da fonte de dados; por exemplo, "CHAR", "VARCHAR", "MONEY", "LONG VARBINARY" ou "CHAR ( ) FOR BIT DATA". |
COLUMN_SIZE (ODBC 2.0) | 8 | Inteiro | O tamanho da coluna de procedimento na fonte de dados. NULL é retornado para tipos de dados em que o tamanho da coluna não é aplicável. Para obter mais informações sobre precisão, consulte Tamanho da Coluna, Dígitos Decimais, Tamanho do Octeto de Transferência e Tamanho de Exibição no Apêndice D: Tipos de Dados. |
BUFFER_LENGTH (ODBC 2.0) | 9 | Inteiro | O comprimento em bytes de dados transferidos em uma operação SQLGetData ou SQLFetch se SQL_C_DEFAULT for especificado. Para dados numéricos, esse tamanho pode ser diferente do tamanho dos dados armazenados na fonte de dados. Para obter mais informações, consulte Tamanho da Coluna, Dígitos Decimais, Tamanho do Octeto de Transferência e Tamanho de Exibição, no Apêndice D: Tipos de Dados. |
DECIMAL_DIGITS (ODBC 2.0) | 10 | Smallint | Os dígitos decimais da coluna de procedimento na fonte de dados. NULL é retornado para tipos de dados em que dígitos decimais não são aplicáveis. Para obter mais informações sobre dígitos decimais, consulte Tamanho da Coluna, Dígitos Decimais, Tamanho do Octeto de Transferência e Tamanho de Exibição, no Apêndice D: Tipos de Dados. |
NUM_PREC_RADIX (ODBC 2.0) | 11 | Smallint | Para tipos de dados numéricos, 10 ou 2. Se 10, os valores em COLUMN_SIZE e DECIMAL_DIGITS dar o número de dígitos decimais permitidos para a coluna. Por exemplo, uma coluna DECIMAL(12,5) retornaria um NUM_PREC_RADIX de 10, um COLUMN_SIZE de 12 e um DECIMAL_DIGITS de 5; uma coluna FLOAT pode retornar um NUM_PREC_RADIX de 10, um COLUMN_SIZE de 15 e um DECIMAL_DIGITS de NULL. Se 2, os valores em COLUMN_SIZE e DECIMAL_DIGITS fornecer o número de bits permitidos na coluna. Por exemplo, uma coluna FLOAT pode retornar um NUM_PREC_RADIX de 2, um COLUMN_SIZE de 53 e um DECIMAL_DIGITS de NULL. NULL é retornado para tipos de dados em que NUM_PREC_RADIX não é aplicável. |
NULLABLE (ODBC 2.0) | 12 | Smallint não NULL | Se a coluna de procedimento aceita um valor NULL: SQL_NO_NULLS: a coluna de procedimento não aceita valores NULL. SQL_NULLABLE: a coluna de procedimento aceita valores NULL. SQL_NULLABLE_UNKNOWN: Não se sabe se a coluna de procedimento aceita valores NULL. |
COMENTÁRIOS (ODBC 2.0) | 13 | Varchar | Uma descrição da coluna de procedimento. |
COLUMN_DEF (ODBC 3.0) | 14 | Varchar | O valor padrão da coluna. Se NULL tiver sido especificado como o valor padrão, essa coluna será a palavra NULL, não entre aspas. Se o valor padrão não puder ser representado sem truncamento, esta coluna conterá TRUNCATED, sem aspas simples entre elas. Se nenhum valor padrão tiver sido especificado, essa coluna será NULL. O valor de COLUMN_DEF pode ser usado na geração de uma nova definição de coluna, exceto quando ela contém o valor TRUNCATED. |
SQL_DATA_TYPE (ODBC 3.0) | 15 | Smallint não NULL | O valor do tipo de dados SQL como ele aparece no campo SQL_DESC_TYPE do descritor. Esta coluna é a mesma que a coluna DATA_TYPE, exceto para tipos de dados datetime e interval. Para tipos de dados datetime e interval, o campo SQL_DATA_TYPE no conjunto de resultados retornará SQL_INTERVAL ou SQL_DATETIME, e o campo SQL_DATETIME_SUB retornará o subcódigo para o tipo de dados de intervalo ou datetime específico. (Consulte Apêndice D: Tipos de dados.) |
SQL_DATETIME_SUB (ODBC 3.0) | 16 | Smallint | O código de subtipo para tipos de dados datetime e interval. Para outros tipos de dados, essa coluna retorna um NULL. |
CHAR_OCTET_LENGTH (ODBC 3.0) | 17 | Inteiro | O comprimento máximo em bytes de uma coluna de tipo de dados binário ou caractere. Para todos os outros tipos de dados, essa coluna retorna um NULL. |
ORDINAL_POSITION (ODBC 3.0) | 18 | Inteiro não NULL | Para parâmetros de entrada e saída, a posição ordinal do parâmetro na definição do procedimento (em ordem de parâmetro crescente, começando em 1). Para um valor retornado (se houver), 0 será retornado. Para colunas de conjunto de resultados, a posição ordinal da coluna no conjunto de resultados, com a primeira coluna no conjunto de resultados sendo o número 1. Se houver vários conjuntos de resultados, as posições ordinais de coluna serão retornadas de maneira específica do driver. |
IS_NULLABLE (ODBC 3.0) | 19 | Varchar | "NÃO" se a coluna não incluir NULLs. "SIM" se a coluna puder incluir NULLs. Esta coluna retornará uma cadeia de caracteres de comprimento zero se a nulidade for desconhecida. As regras ISO são seguidas para determinar a nulidade. Um DBMS compatível com ISO SQL não pode retornar uma cadeia de caracteres vazia. O valor retornado para esta coluna é diferente do valor retornado para a coluna NULLABLE. (Consulte a descrição da coluna NULLABLE.) |
Exemplo de código
Consulte procedure calls.
Funções relacionadas
Para obter informações sobre | Ver |
---|---|
Associar um buffer a uma coluna em um conjunto de resultados | de função SQLBindCol |
Cancelando o processamento de instruções | de função SQLCancel |
Buscar uma única linha ou um bloco de dados em uma direção somente para frente | de função SQLFetch |
Buscar um bloco de dados ou rolar por um conjunto de resultados | função SQLFetchScroll |
Retornando uma lista de procedimentos em uma fonte de dados | função SQLProcedures |