Freigeben über


datetime-Datentypen

In ODBC 3.x haben sich die Bezeichner für Datums-, Uhrzeit- und Zeitstempel-SQL-Datentypen von SQL_DATE, SQL_TIME und SQL_TIMESTAMP (mit Instanzen von #define in der Headerdatei von 9, 10 und 11) in SQL_TYPE_DATE, SQL_TYPE_TIME und SQL_TYPE_TIMESTAMP (mit Instanzen von #define in der Headerdatei von 91, 92 bzw. 93) Die entsprechenden C-Typbezeichner haben sich von SQL_C_DATE, SQL_C_TIME und SQL_C_TIMESTAMP in SQL_C_TYPE_DATE, SQL_C_TYPE_TIME bzw. SQL_C_TYPE_TIMESTAMP geändert und die Instanzen von #define entsprechend geändert.

Die Spaltengröße und dezimale Ziffern, die für die SQL-Datetime-Datentypen in ODBC 3.x zurückgegeben werden, entsprechen der Genauigkeit und skalierung, die in ODBC 2.x zurückgegeben wird. Diese Werte unterscheiden sich von den Werten in den Feldern SQL_DESC_PRECISION und SQL_DESC_SCALE Deskriptor. (Weitere Informationen finden Sie unter Spaltengröße, Dezimalziffern, Übertragen der Oktettlänge und Anzeigegröße in Anhang D: Datentypen.)

Diese Änderungen wirken sich auf SQLDescribeCol, SQLDescribeParam und SQLColAttributes aus; SQLBindCol, SQLBindParameter und SQLGetData; und SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLStatistics und SQLSpecialColumns.

Ein ODBC 3.x-Treiber verarbeitet die im vorherigen Absatz aufgeführten Funktionsaufrufe gemäß der Einstellung des SQL_ATTR_ODBC_VERSION Umgebungsattributs. Bei SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLSpecialColumns und SQLStatistics geben die Funktionen, wenn SQL_ATTR_ODBC_VERSION auf SQL_OV_ODBC3 festgelegt ist, die Funktionen im Feld DATA_TYPE SQL_TYPE_DATE, SQL_TYPE_TIME und SQL_TYPE_TIMESTAMP zurück. Die COLUMN_SIZE Spalte (in dem von SQLColumns, SQLGetTypeInfo, SQLProcedureColumns und SQLSpecialColumns zurückgegebenen Resultset) enthält die binäre Genauigkeit für den ungefähren numerischen Typ. Wenn SQL_ATTR_ODBC_VERSION auf SQL_OV_ODBC2 festgelegt ist, geben die Funktionen SQL_DATE, SQL_TIME und SQL_TIMESTAMP im Feld DATA_TYPE zurück, und die spalte COLUMN_SIZE enthält die Dezimalgenauigkeit für den ungefähren numerischen Typ.

Wenn alle Datentypen in einem Aufruf von SQLGetTypeInfo angefordert werden, enthält das von der Funktion zurückgegebene Resultset sowohl SQL_TYPE_DATE, SQL_TYPE_TIME als auch SQL_TYPE_TIMESTAMP gemäß der Definition in ODBC 3.x und SQL_DATE, SQL_TIME und SQL_TIMESTAMP wie in ODBC 2.x definiert.

Aufgrund der Art und Weise, wie der ODBC 3.x-Treiber-Manager die Zuordnung der Datentypen Datum, Uhrzeit und Zeitstempel durchführt, müssen ODBC 3.x-Treibernur #defines von 91, 92 und 93 für die Datentypen Datum, Uhrzeit und Zeitstempel C erkennen, die in den TargetType-Argumenten von SQLBindCol und SQLGetData oder dem ValueType-Argument von SQLBindParameter eingegeben wurden, und muss nur #defines von 91, 92 und 93 für die Datentypen Datum, Uhrzeit und Zeitstempel von SQL erkannt werden, die im ParameterType-Argument von SQLBindParameter oder das DataType-Argument von SQLGetTypeInfo eingegeben wurden. Weitere Informationen finden Sie unter Datetime-Datentypänderungen.