Änderungen des Datentyps „datetime“
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 wurden 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.
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, Länge des Oktetts übertragen und Anzeigegröße.)
Diese Änderungen wirken sich auf SQLDescribeCol, SQLDescribeParam und SQLColAttribute aus. SQLBindCol, SQLBindParameter und SQLGetData; und SQLColumns, SQLGetTypeInfo, SQLProcedureColumns, SQLStatistics und SQLSpecialColumns.
Die folgende Tabelle zeigt, wie der ODBC 3.x-Treiber-Manager die Zuordnung der Datentypen Datum, Uhrzeit und Zeitstempel C ausführt, die in den TargetType-Argumenten von SQLBindCol und SQLGetData oder im ValueType-Argument von SQLBindParameter eingegeben wurden.
Datentyp eingegebener Code |
2.x-App zu 2.x-Treiber |
2.x-App zu 3.x-Treiber |
3.x-App zu 2.x-Treiber |
3.x-App zu 3.x-Treiber |
---|---|---|---|---|
SQL_C_DATE (9) | Keine Zuordnung | SQL_C_TYPE_DATE (91) | Keine Zuordnung[1] | SQL_C_TYPE_DATE (91) |
SQL_C_TYPE_DATE (91) | Fehler (von DM) | Fehler (von DM) | SQL_C_DATE (9) | Keine Zuordnung[2] |
SQL_C_TIME (10) | Keine Zuordnung | SQL_C_TYPE_TIME (92) | Keine Zuordnung[1] | SQL_C_TYPE_TIME (92) |
SQL_C_TYPE_TIME (92) | Fehler (von DM) | Fehler (von DM) | SQL_C_TIME (10) | Keine Zuordnung[2] |
SQL_C_TIMESTAMP (11) | Keine Zuordnung | SQL_C_TYPE_TIMESTAMP (93) | Keine Zuordnung[1] | SQL_C_TYPE_TIMESTAMP (93) |
SQL_C_TYPE_TIMESTAMP (93) | Fehler (von DM) | Fehler (von DM) | SQL_C_TIMESTAMP (11) | Keine Zuordnung[2] |
[1] Daher kann eine ODBC 3.x-Anwendung, die mit einem ODBC 2.x-Treiber arbeitet, die Datums-, Uhrzeit- oder Zeitstempelcodes verwenden, die in den Resultsets zurückgegeben werden, die von den Katalogfunktionen zurückgegeben werden.
[2] Daraus kann eine ODBC 3.x-Anwendung, die mit einem ODBC 3.x-Treiber arbeitet, die Datums-, Uhrzeit- oder Zeitstempelcodes verwenden, die in den Resultsets zurückgegeben werden, die von den Katalogfunktionen zurückgegeben werden.
Die folgende Tabelle zeigt, wie der ODBC 3.x-Treiber-Manager die Zuordnung der Datentypen Datum, Uhrzeit und Zeitstempel ausführt, die im ParameterType-Argument von SQLBindParameter oder im DataType-Argument von SQLGetTypeInfo eingegeben wurden.
Datentyp eingegebener Code |
2.x-App zu 2.x-Treiber |
2.x-App zu 3.x-Treiber |
3.x-App zu 2.x-Treiber |
3.x-App zu 3.x-Treiber |
---|---|---|---|---|
SQL_DATE (9) | Keine Zuordnung | SQL_TYPE_DATE (91) | Keine Zuordnung[1] | SQL_TYPE_DATE (91) |
SQL_TYPE_DATE (91) | Fehler (von DM) | Fehler (von DM) | SQL_DATE (9) | Keine Zuordnung[2] |
SQL_TIME (10) | Keine Zuordnung | SQL_TYPE_TIME (92) | Keine Zuordnung[1] | SQL_TYPE_TIME (92) |
SQL_TYPE_TIME (92) | Fehler (von DM) | Fehler (von DM) | SQL_TIME (10) | Keine Zuordnung[2] |
SQL_TIMESTAMP (11) | Keine Zuordnung | SQL_TYPE_TIMESTAMP (93) | Keine Zuordnung[1] | SQL_TYPE_TIMESTAMP (93) |
SQL_TYPE_TIMESTAMP (93) | Fehler (von DM) | Fehler (von DM) | SQL_TIMESTAMP (11) | Keine Zuordnung[2] |
[1] Daher kann eine ODBC 3.x-Anwendung, die mit einem ODBC 2.x-Treiber arbeitet, die Datums-, Uhrzeit- oder Zeitstempelcodes verwenden, die in den Resultsets zurückgegeben werden, die von den Katalogfunktionen zurückgegeben werden.
[2] Daraus kann eine ODBC 3.x-Anwendung, die mit einem ODBC 3.x-Treiber arbeitet, die Datums-, Uhrzeit- oder Zeitstempelcodes verwenden, die in den Resultsets zurückgegeben werden, die von den Katalogfunktionen zurückgegeben werden.