Compartilhar via


C para SQL: intervalos de ano-mês

Os identificadores para os tipos de dados ODBC C de intervalo de ano/mês são:

SQL_C_INTERVAL_MONTH SQL_C_INTERVAL_YEAR SQL_C_INTERVAL_YEAR_TO_MONTH

A tabela a seguir mostra os tipos de dados SQL ODBC para os quais os dados C do intervalo de ano/mês podem ser convertidos. Para obter uma explicação das colunas e termos na tabela, consulte Convertendo dados de C para tipos de dados SQL.

Identificador de tipo SQL Teste SQLSTATE
SQL_CHAR[a]

SQL_VARCHAR[a]

SQL_LONGVARCHAR[a]
Comprimento do byte >da coluna = comprimento do byte do caractere

Comprimento do caractere de comprimento < do byte da coluna[a]

O valor de dados não é um literal de intervalo válido
n/d

22001

22015
SQL_WCHAR[a]

SQL_WVARCHAR[a]

SQL_WLONGVARCHAR[a]
Comprimento do caractere >de coluna = comprimento de caracteres dos dados

Comprimento do caractere < de coluna Comprimento do caractere de dados[a]

O valor de dados não é um literal de intervalo válido
n/d

22001

22015
SQL_TINYINT[b]

SQL_SMALLINT[b]

SQL_INTEGER[b]

SQL_BIGINT[b]

SQL_NUMERIC[b]

SQL_DECIMAL[b]
A conversão de um intervalo de campo único não resultou em truncamento de dígitos inteiros

A conversão resultou em truncamento de dígitos inteiros
n/d

22003
SQL_INTERVAL_MONTH

SQL_INTERVAL_YEAR

SQL_INTERVAL_YEAR_TO_MONTH
O valor dos dados foi convertido sem truncamento de nenhum campo

Um ou mais campos de valor de dados foram truncados durante a conversão
n/d

22015

[a] Todos os tipos de dados de intervalo C podem ser convertidos em um tipo de dados de caractere.

[b] Se o campo de tipo na estrutura de intervalo for de modo que o intervalo seja um único campo (SQL_YEAR ou SQL_MONTH), o tipo C de intervalo poderá ser convertido em qualquer numérico exato (SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER, SQL_BIGINT, SQL_DECIMAL ou SQL_NUMERIC).

A conversão padrão de um tipo C de intervalo é para o tipo SQL de intervalo de ano/mês correspondente.

O driver ignora o valor de comprimento/indicador ao converter dados do tipo de dados C do intervalo e pressupõe que o tamanho do buffer de dados seja o tamanho do tipo de dados C do intervalo. O valor de comprimento/indicador é passado no argumento StrLen_or_Ind em SQLPutData e no buffer especificado com o argumento StrLen_or_IndPtr em SQLBindParameter. O buffer de dados é especificado com o argumento DataPtr em SQLPutData e o argumento ParameterValuePtr em SQLBindParameter.