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.