C para SQL: numérico
Os identificadores para os tipos de dados ODBC C numéricos são:
SQL_C_STINYINT
SQL_C_SLONG
SQL_C_UTINYINT
SQL_C_ULONG
SQL_C_TINYINT
SQL_C_LONG
SQL_C_SSHORT
SQL_C_FLOAT
SQL_C_USHORT
SQL_C_DOUBLE
SQL_C_SHORT
SQL_C_NUMERIC
SQL_C_SBIGINT
SQL_C_UBIGINT
A tabela a seguir mostra os tipos de dados SQL ODBC para os quais os dados C numéricos podem ser convertidos. Para obter uma explicação das colunas e dos termos na tabela, consulte Convertendo dados de C para tipos de dados SQL.
Identificador de tipo SQL | Teste | SQLSTATE |
---|---|---|
SQL_CHAR SQL_VARCHAR SQL_LONGVARCHAR |
Número de dígitos <= Comprimento do byte da coluna Número de dígitos > Comprimento do byte da coluna |
n/d 22001 |
SQL_WCHAR SQL_WVARCHAR SQL_WLONGVARCHAR |
Número de caracteres <= Comprimento do caractere da coluna Número de caracteres Comprimento do caractere de coluna > |
n/d 22001 |
SQL_DECIMAL[b] SQL_NUMERIC[b] SQL_TINYINT[b] SQL_SMALLINT[b] SQL_INTEGER[b] SQL_BIGINT[b] |
Dados convertidos sem truncamento ou com truncados de dígitos fracionários Dados convertidos com truncamento de dígitos inteiros |
n/d 22003 |
SQL_REAL SQL_FLOAT SQL_DOUBLE |
Os dados estão dentro do intervalo do tipo de dados no qual o número está sendo convertido Os dados estão fora do intervalo do tipo de dados no qual o número está sendo convertido |
n/d 22003 |
SQL_BIT | Os dados são 0 ou 1 Os dados são maiores que 0, menores que 2 e não são iguais a 1 Os dados são menores que 0 ou superiores ou iguais a 2 |
n/d 22001 22003 |
SQL_INTERVAL_YEAR[a] SQL_INTERVAL_MONTH[a] SQL_INTERVAL_DAY[a] SQL_INTERVAL_HOUR[a] SQL_INTERVAL_MINUTE[a] SQL_INTERVAL_SECOND[a] |
Dados não truncados. Dados truncados. |
n/d 22015 |
[a] Essas conversões têm suporte apenas para os tipos de dados numéricos exatos (SQL_C_STINYINT, SQL_C_UTINYINT, SQL_C_SSHORT, SQL_C_USHORT, SQL_C_SLONG, SQL_C_ULONG ou SQL_C_NUMERIC). Eles não têm suporte para os tipos de dados numéricos aproximados (SQL_C_FLOAT ou SQL_C_DOUBLE). Tipos de dados C numéricos exatos não podem ser convertidos em um tipo SQL de intervalo cuja precisão de intervalo não é um único campo.
[b] Para o caso "n/a", um driver pode, opcionalmente, retornar SQL_SUCCESS_WITH_INFO e 01S07 quando houver um truncamento fracionário.
O driver ignora o valor de comprimento/indicador ao converter dados dos tipos de dados C numéricos e pressupõe que o tamanho do buffer de dados seja do tamanho do tipo de dados C numérico. 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.