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.