Condividi tramite


Da C a SQL: dati numerici

Gli identificatori per i tipi di dati ODBC C numerici sono:

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

Nella tabella seguente vengono illustrati i tipi di dati SQL ODBC in cui è possibile convertire i dati numerici C. Per una spiegazione delle colonne e dei termini nella tabella, vedere Conversione di dati da C a tipi di dati SQL.

Identificatore del tipo SQL Test SQLSTATE
SQL_CHAR

SQL_VARCHAR

SQL_LONGVARCHAR
Numero di cifre <= Lunghezza byte colonna

Numero di cifre > Lunghezza byte colonna
N/D

22001
SQL_WCHAR

SQL_WVARCHAR

SQL_WLONGVARCHAR
Numero di caratteri <= Lunghezza carattere colonna

Numero di caratteri > Lunghezza carattere colonna
N/D

22001
SQL_DECIMAL[b]

SQL_NUMERIC[b]

SQL_TINYINT[b]

SQL_SMALLINT[b]

SQL_INTEGER[b]

SQL_BIGINT[b]
Dati convertiti senza troncamento o troncati di cifre frazionarie

Dati convertiti con troncamento di intere cifre
N/D

22003
SQL_REAL

SQL_FLOAT

SQL_DOUBLE
I dati si trovano all'interno dell'intervallo del tipo di dati in cui viene convertito il numero

I dati non rientrano nell'intervallo del tipo di dati in cui viene convertito il numero
N/D

22003
SQL_BIT I dati sono 0 o 1

I dati sono maggiori di 0, minori di 2 e non uguali a 1

I dati sono minori di 0 o maggiori o uguali 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]
Dati non troncati.

Dati troncati.
N/D

22015

[a] Queste conversioni sono supportate solo per i tipi di dati numerici esatti (SQL_C_STINYINT, SQL_C_UTINYINT, SQL_C_SSHORT, SQL_C_USHORT, SQL_C_SLONG, SQL_C_ULONG o SQL_C_NUMERIC). Non sono supportati per i tipi di dati numerici approssimativi (SQL_C_FLOAT o SQL_C_DOUBLE). I tipi di dati C numerici esatti non possono essere convertiti in un tipo SQL intervallo la cui precisione intervallo non è un singolo campo.

[b] Per il caso "n/a", un driver può facoltativamente restituire SQL_SUCCESS_WITH_INFO e 01S07 quando è presente un troncamento frazionario.

Il driver ignora il valore di lunghezza/indicatore durante la conversione dei dati dai tipi di dati C numerici e presuppone che le dimensioni del buffer di dati siano le dimensioni del tipo di dati numericO C. Il valore di lunghezza/indicatore viene passato nell'argomento StrLen_or_Ind in SQLPutData e nel buffer specificato con l'argomento StrLen_or_IndPtr in SQLBindParameter. Il buffer di dati viene specificato con l'argomento DataPtr in SQLPutData e l'argomento ParameterValuePtr in SQLBindParameter.