Teilen über


SQL zu C: Jahr-Monat-Intervalle

Die Bezeichner für die ODBC SQL-Datentypen zwischen Jahr und Monat sind die folgenden:

  • SQL_INTERVAL_MONTH
  • SQL_INTERVAL_YEAR
  • SQL_INTERVAL_YEAR_TO_MONTH

In der folgenden Tabelle sind die ODBC C-Datentypen aufgeführt, in die SQL-Daten im Jahr-Monat-Intervall konvertiert werden können. Eine Erläuterung der Spalten und Begriffe in der Tabelle finden Sie unter Konvertieren von Daten aus SQL in C-Datentypen.

C-Typbezeichner Test TargetValuePtr StrLen_or_IndPtr SQLSTATE
SQL_C_INTERVAL_MONTH[a]

SQL_C_INTERVAL_YEAR[a]

SQL_C_INTERVAL_YEAR_TO_MONTH[a]
Nachgestellter Feldteil nicht abgeschnitten

Nachgestellter Feldteil abgeschnitten

Führende Genauigkeit des Ziels ist nicht groß genug, um Daten aus der Quelle zu halten
Daten

Abgeschnittene Daten

Nicht definiert
Länge der Daten in Bytes

Länge der Daten in Bytes

Nicht definiert


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]
Die Intervallgenauigkeit war ein einzelnes Feld, und die Daten wurden ohne Abschneiden konvertiert.

Intervallgenauigkeit war ein einzelnes Feld und abgeschnittenes Ganzes

Intervallgenauigkeit war kein einzelnes Feld
Daten

Abgeschnittene Daten

Nicht definiert
Größe des C-Datentyps

Länge der Daten in Bytes

Größe des C-Datentyps


22003

22015
SQL_C_BINARY Bytelänge der Daten <= BufferLength

Bytelänge der Daten >BufferLength
Daten

Nicht definiert
Länge der Daten in Bytes

Nicht definiert


22003
SQL_C_CHAR Zeichenbytelänge <BufferLength

Anzahl der ganzen Ziffern (im Gegensatz zu Bruchstellen<) BufferLength

Anzahl ganzer Ziffern (im Gegensatz zu Bruchstellen >) = BufferLength
Daten

Abgeschnittene Daten

Nicht definiert
Größe des C-Datentyps

Größe des C-Datentyps

Nicht definiert


01004

22003
SQL_C_WCHAR Zeichenlänge <BufferLength

Anzahl der ganzen Ziffern (im Gegensatz zu Bruchstellen<) BufferLength

Anzahl ganzer Ziffern (im Gegensatz zu Bruchstellen >) = BufferLength
Daten

Abgeschnittene Daten

Nicht definiert
Größe des C-Datentyps

Größe des C-Datentyps

Nicht definiert


01004

22003

[a] Ein SQL-Typ eines Jahres-Monatsintervalls kann in einen beliebigen Jahr-Monat-Intervall-C-Typ konvertiert werden.

[b] Wenn die Intervallgenauigkeit ein einzelnes Feld ist (eines von YEAR oder MONTH), kann der SQL-Intervalltyp in einen beliebigen genauen numerischen Typ (SQL_C_STINYINT, SQL_C_UTINYINT, SQL_C_USHORT, SQL_C_SHORT, SQL_C_SLONG, SQL_C_ULONG oder SQL_C_NUMERIC) konvertiert werden.

Standardkonvertierungen

Die Standardkonvertierung eines SQL-Intervalltyps ist in den entsprechenden C-Intervalldatentyp. Die Anwendung bindet dann die Spalte oder den Parameter (oder legt das SQL_DESC_DATA_PTR Feld im entsprechenden Datensatz der ARD fest), um auf die initialisierte SQL_INTERVAL_STRUCT -Struktur zu verweisen (oder übergibt einen Zeiger auf die SQL_ INTERVAL_STRUCT-Struktur als TargetValuePtr-Argument in einem Aufruf von SQLGetData).