Compartilhar via


SQL para C: intervalos de ano-mês

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

  • SQL_INTERVAL_MONTH
  • SQL_INTERVAL_YEAR
  • SQL_INTERVAL_YEAR_TO_MONTH

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

Identificador de tipo C Teste TargetValuePtr Strlen_or_indptr SQLSTATE
SQL_C_INTERVAL_MONTH[a]

SQL_C_INTERVAL_YEAR[a]

SQL_C_INTERVAL_YEAR_TO_MONTH[a]
Parte dos campos à direita não truncada

Parte dos campos à direita truncada

A precisão principal do destino não é grande o suficiente para manter os dados da origem
Dados

Dados truncados

Indefinido
Comprimento dos dados em bytes

Comprimento dos dados em bytes

Indefinido
n/d

01S07

22015
SQL_C_STINYINT[b]

SQL_C_UTINYINT[b]

SQL_C_USHORT[b]

SQL_C_SHORT[b]

SQL_C_SLONG[b]

SQL_C_ULONG[b]

SQL_C_NUMERIC[b]

SQL_C_BIGINT[b]
A precisão do intervalo era um único campo e os dados foram convertidos sem truncamento

A precisão do intervalo era um único campo e truncado inteiro

A precisão do intervalo não era um único campo
Dados

Dados truncados

Indefinido
Tamanho do tipo de dados C

Comprimento dos dados em bytes

Tamanho do tipo de dados C
n/d

22003

22015
SQL_C_BINARY Comprimento de bytes de dados <= BufferLength

Comprimento de bytes de dados >BufferLength
Dados

Indefinido
Comprimento dos dados em bytes

Indefinido
n/d

22003
SQL_C_CHAR Comprimento do byte de caractere <BufferLength

Número de dígitos inteiros (em vez de fracionários<) BufferLength

Número de dígitos inteiros (em vez de fracionários >) = BufferLength
Dados

Dados truncados

Indefinido
Tamanho do tipo de dados C

Tamanho do tipo de dados C

Indefinido
n/d

01004

22003
SQL_C_WCHAR BufferLength de comprimento < de caractere

Número de dígitos inteiros (em vez de fracionários<) BufferLength

Número de dígitos inteiros (em vez de fracionários >) = BufferLength
Dados

Dados truncados

Indefinido
Tamanho do tipo de dados C

Tamanho do tipo de dados C

Indefinido
n/d

01004

22003

[a] Um tipo SQL de intervalo de ano/mês pode ser convertido em qualquer tipo C de intervalo de ano/mês.

[b] Se a precisão do intervalo for um único campo (um de ANO ou MÊS), o tipo SQL de intervalo poderá ser convertido em qualquer numérico exato (SQL_C_STINYINT, SQL_C_UTINYINT, SQL_C_USHORT, SQL_C_SHORT, SQL_C_SLONG, SQL_C_ULONG ou SQL_C_NUMERIC).

Conversões padrão

A conversão padrão de um tipo SQL de intervalo é para o tipo de dados de intervalo C correspondente. Em seguida, o aplicativo associa a coluna ou o parâmetro (ou define o campo SQL_DESC_DATA_PTR no registro apropriado do ARD) para apontar para a estrutura de SQL_INTERVAL_STRUCT inicializada (ou passa um ponteiro para a estrutura SQL_ INTERVAL_STRUCT como o argumento TargetValuePtr em uma chamada para SQLGetData).