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).