Condividi tramite


Da C a SQL: intervalli anno-mese

Gli identificatori per i tipi di dati ODBC C intervallo di anno sono:

SQL_C_INTERVAL_MONTH SQL_C_INTERVAL_YEAR SQL_C_INTERVAL_YEAR_TO_MONTH

Nella tabella seguente vengono illustrati i tipi di dati SQL ODBC in cui è possibile convertire i dati C relativi all'intervallo di anno.The following table shows the ODBC SQL data types to which year-month interval C data may be convert. 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[a]

SQL_VARCHAR[a]

SQL_LONGVARCHAR[a]
Lunghezza >byte colonna = Lunghezza byte carattere

Lunghezza byte di colonna < Lunghezza byte carattere[a]

Il valore dei dati non è un valore letterale intervallo valido
N/D

22001

22015
SQL_WCHAR[a]

SQL_WVARCHAR[a]

SQL_WLONGVARCHAR[a]
Lunghezza >carattere colonna = Lunghezza carattere dei dati

Lunghezza carattere colonna Lunghezza < carattere di dati[a]

Il valore dei dati non è un valore letterale intervallo valido
N/D

22001

22015
SQL_TINYINT[b]

SQL_SMALLINT[b]

SQL_INTEGER[b]

SQL_BIGINT[b]

SQL_NUMERIC[b]

SQL_DECIMAL[b]
La conversione di un intervallo a campo singolo non ha comportato il troncamento di intere cifre

La conversione ha comportato il troncamento di intere cifre
N/D

22003
SQL_INTERVAL_MONTH

SQL_INTERVAL_YEAR

SQL_INTERVAL_YEAR_TO_MONTH
Il valore dei dati è stato convertito senza troncamento di alcun campo

Uno o più campi del valore di dati sono stati troncati durante la conversione
N/D

22015

[a] Tutti i tipi di dati intervallo C possono essere convertiti in un tipo di dati carattere.

[b] Se il campo di tipo nella struttura dell'intervallo è tale che l'intervallo sia un singolo campo (SQL_YEAR o SQL_MONTH), il tipo C intervallo può essere convertito in qualsiasi valore numerico esatto (SQL_TINYINT, SQL_SMALLINT, SQL_INTEGER, SQL_BIGINT, SQL_DECIMAL o SQL_NUMERIC).

La conversione predefinita di un tipo interval C è nel tipo SQL intervallo di anno/mese corrispondente.

Il driver ignora il valore di lunghezza/indicatore durante la conversione dei dati dal tipo di dati interval C e presuppone che le dimensioni del buffer di dati siano le dimensioni del tipo di dati interval 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.