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).