Compartilhar via


Identificadores e descritores de tipo de dados

Os tipos de dados listados nas seções Tipos de Dados SQL e Tipos de Dados C anteriores neste apêndice são tipos de dados "concisos": cada identificador se refere a um único tipo de dados. Há uma correspondência um-para-um entre o identificador e o tipo de dados. No entanto, os descritores não usam, em todos os casos, um único valor para identificar tipos de dados. Em alguns casos, eles usam um tipo de dados "detalhado" e um subcódigo de tipo. Para todos os tipos de dados, exceto tipos de dados datetime e interval, o identificador de tipo detalhado é o mesmo que o identificador de tipo conciso e o valor em SQL_DESC_DATETIME_INTERVAL_CODE é igual a 0. No entanto, para tipos de dados datetime e interval, um tipo detalhado (SQL_DATETIME ou SQL_INTERVAL) é armazenado em SQL_DESC_TYPE, um tipo conciso é armazenado em SQL_DESC_CONCISE_TYPE e um subcódigo para cada tipo conciso é armazenado em SQL_DESC_DATETIME_INTERVAL_CODE. Definir um desses campos afeta os outros. Para obter mais informações sobre esses campos, consulte a descrição da função SQLSetDescField .

Quando o campo SQL_DESC_TYPE ou SQL_DESC_CONCISE_TYPE é definido para alguns tipos de dados, os campos SQL_DESC_DATETIME_INTERVAL_PRECISION, SQL_DESC_LENGTH, SQL_DESC_PRECISION e SQL_DESC_SCALE são definidos automaticamente como valores padrão, conforme aplicável ao tipo de dados. Para obter mais informações, consulte a descrição do campo SQL_DESC_TYPE em SQLSetDescField. Se qualquer um dos valores padrão definidos não for apropriado, o aplicativo deverá definir explicitamente o campo descritor por meio de uma chamada para SQLSetDescField.

A tabela a seguir mostra o identificador de tipo conciso, o identificador de tipo detalhado e o subcódigo de tipo para cada datetime e o identificador de tipo SQL e C de intervalo. Como essa tabela indica, para tipos de dados datetime e interval, os campos SQL_DESC_TYPE e SQL_DESC_DATETIME_INTERVAL_CODE têm as mesmas constantes de manifesto para tipos de dados SQL (em descritores de implementação) e para tipos de dados C (em descritores de aplicativo).

Tipo de SQL conciso Tipo C conciso Tipo detalhado DATETIME_INTERVAL_CODE
SQL_TYPE_DATE SQL_C_TYPE_DATE SQL_DATETIME SQL_CODE_DATE
SQL_TYPE_TIME SQL_C_TYPE_TIME SQL_DATETIME SQL_CODE_TIME
SQL_TYPE_TIMESTAMP SQL_C_TYPE_TIMESTAMP SQL_DATETIME SQL_CODE_TIMESTAMP
SQL_INTERVAL_MONTH SQL_C_INTERVAL_MONTH SQL_INTERVAL SQL_CODE_MONTH
SQL_INTERVAL_YEAR SQL_C_INTERVAL_YEAR SQL_INTERVAL SQL_CODE_YEAR
SQL_INTERVAL_YEAR_TO_MONTH SQL_C_INTERVAL_YEAR_TO_MONTH SQL_INTERVAL SQL_CODE_YEAR_TO_MONTH
SQL_INTERVAL_DAY SQL_C_INTERVAL_DAY SQL_INTERVAL SQL_CODE_DAY
SQL_INTERVAL_HOUR SQL_C_INTERVAL_HOUR SQL_INTERVAL SQL_CODE_HOUR
SQL_INTERVAL_MINUTE SQL_C_INTERVAL_MINUTE SQL_INTERVAL SQL_CODE_MINUTE
SQL_INTERVAL_SECOND SQL_C_INTERVAL_SECOND SQL_INTERVAL SQL_CODE_SECOND
SQL_INTERVAL_DAY_TO_HOUR SQL_C_INTERVAL_DAY_TO_HOUR SQL_INTERVAL SQL_CODE_DAY_TO_HOUR
SQL_INTERVAL_DAY_TO_MINUTE SQL_C_INTERVAL_DAY_TO_MINUTE SQL_INTERVAL SQL_CODE_DAY_TO_MINUTE
SQL_INTERVAL_DAY_TO_SECOND SQL_C_INTERVAL_DAY_TO_SECOND SQL_INTERVAL SQL_CODE_DAY_TO_SECOND
SQL_INTERVAL_HOUR_TO_MINUTE SQL_C_INTERVAL_HOUR_TO_MINUTE SQL_INTERVAL SQL_CODE_HOUR_TO_MINUTE
SQL_INTERVAL_HOUR_TO_SECOND SQL_C_INTERVAL_HOUR_TO_SECOND SQL_INTERVAL SQL_CODE_HOUR_TO_SECOND
SQL_INTERVAL_MINUTE_TO_SECOND SQL_C_INTERVAL_MINUTE_TO_SECOND SQL_INTERVAL SQL_CODE_MINUTE_TO_SECOND