Condividi tramite


Da SQL a C: intervalli anno-mese

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

  • SQL_INTERVAL_MONTH
  • SQL_INTERVAL_YEAR
  • SQL_INTERVAL_YEAR_TO_MONTH

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

Identificatore del tipo C Test TargetValuePtr StrLen_or_IndPtr SQLSTATE
SQL_C_INTERVAL_MONTH[a]

SQL_C_INTERVAL_YEAR[a]

SQL_C_INTERVAL_YEAR_TO_MONTH[a]
Parte dei campi finali non troncata

Parte dei campi finali troncata

La precisione iniziale della destinazione non è abbastanza grande da contenere i dati dall'origine
Dati

Dati troncati

Non definito
Lunghezza dei dati in byte

Lunghezza dei dati in byte

Non definito
N/D

01S07

22015
SQL_C_STINYINT[b]

SQL_C_UTINYINT[b]

SQL_C_USHORT[b]

SQL_C_SHORT[b]

SQL_C_SLONG[b]

SQL_C_ULONG[b]

SQL_C_NUMERIC[b]

SQL_C_BIGINT[b]
La precisione dell'intervallo è un singolo campo e i dati sono stati convertiti senza troncamento

La precisione dell'intervallo era un singolo campo e un intero troncato

Precisione intervallo non è un singolo campo
Dati

Dati troncati

Non definito
Dimensioni del tipo di dati C

Lunghezza dei dati in byte

Dimensioni del tipo di dati C
N/D

22003

22015
SQL_C_BINARY Lunghezza byte dei dati <= BufferLength

Lunghezza byte dei dati >BufferLength
Dati

Non definito
Lunghezza dei dati in byte

Non definito
N/D

22003
SQL_C_CHAR Lunghezza byte <carattere BufferLength

Numero di cifre intere <(anziché frazionarie) BufferLength

Numero di cifre intere >(anziché frazionarie) = BufferLength
Dati

Dati troncati

Non definito
Dimensioni del tipo di dati C

Dimensioni del tipo di dati C

Non definito
N/D

01004

22003
SQL_C_WCHAR BufferLength lunghezza <carattere

Numero di cifre intere <(anziché frazionarie) BufferLength

Numero di cifre intere >(anziché frazionarie) = BufferLength
Dati

Dati troncati

Non definito
Dimensioni del tipo di dati C

Dimensioni del tipo di dati C

Non definito
N/D

01004

22003

[a] Un tipo SQL di intervallo di anno-mese può essere convertito in qualsiasi tipo C intervallo anno-mese.

[b] Se la precisione dell'intervallo è un singolo campo (uno di YEAR o MONTH), il tipo SQL intervallo può essere convertito in qualsiasi valore numerico esatto (SQL_C_STINYINT, SQL_C_UTINYINT, SQL_C_USHORT, SQL_C_SHORT, SQL_C_SLONG, SQL_C_ULONG o SQL_C_NUMERIC).

Conversioni predefinite

La conversione predefinita di un tipo SQL interval è nel tipo di dati intervallo C corrispondente. L'applicazione associa quindi la colonna o il parametro (o imposta il campo SQL_DESC_DATA_PTR nel record appropriato del ARD) in modo che punti alla struttura SQL_INTERVAL_STRUCT inizializzata (o passa un puntatore alla struttura SQL_ INTERVAL_STRUCT come argomento TargetValuePtr in una chiamata a SQLGetData).