Share via


Datentypkonvertierungen

Daten können zu einem von vier Mal von einem Typ in einen anderen konvertiert werden: wenn Daten von einer Anwendungsvariable in eine andere (C zu C) übertragen werden, wenn Daten in einer Anwendungsvariable an einen Anweisungsparameter (C an SQL) gesendet werden, wenn Daten in einer Resultsetspalte in einer Anwendungsvariable (SQL zu C) zurückgegeben werden, und wenn Daten von einer Datenquellenspalte in eine andere übertragen werden (SQL zu SQL).

Jede Konvertierung, die auftritt, wenn Daten von einer Anwendungsvariable in eine andere übertragen werden, liegt außerhalb des Gültigkeitsbereichs dieses Dokuments.

Wenn eine Anwendung eine Variable an eine Resultsetspalte oder einen Anweisungsparameter bindet, gibt die Anwendung implizit eine Datentypkonvertierung in der Auswahl des Datentyps der Anwendungsvariable an. Angenommen, eine Spalte enthält ganze Zahlen. Wenn die Anwendung eine ganzzahlige Variable an die Spalte bindet, gibt sie an, dass keine Konvertierung durchgeführt wird. wenn die Anwendung eine Zeichenvariable an die Spalte bindet, gibt sie an, dass die Daten von ganzzahl in Zeichen konvertiert werden.

ODBC definiert, wie Daten zwischen jedem SQL- und C-Datentyp konvertiert werden. Im Grunde unterstützt ODBC alle vernünftigen Konvertierungen, z. B. Zeichen in ganze Zahl und ganze Zahl zum Gleitkomma, und unterstützt keine undefinierten Konvertierungen, z. B. float to date. Treiber sind erforderlich, um alle Konvertierungen für jeden unterstützten SQL-Datentyp zu unterstützen. Eine vollständige Liste der Konvertierungen zwischen SQL- und C-Datentypen finden Sie unter Konvertieren von Daten aus SQL in C-Datentypen und Konvertieren von Daten aus C in SQL-Datentypen in Anhang D: Datentypen.

ODBC definiert auch eine skalare Funktion zum Konvertieren von Daten aus einem SQL-Datentyp in einen anderen. Die CONVERT-Skalarfunktion wird vom Treiber der zugrunde liegenden Skalarfunktion oder -funktionen zugeordnet, die zum Ausführen von Konvertierungen in der Datenquelle definiert sind. Da diese Funktion DBMS-spezifischen Funktionen zugeordnet ist, definiert ODBC nicht, wie diese Konvertierungen funktionieren oder welche Konvertierungen unterstützt werden müssen. Eine Anwendung ermittelt, welche Konvertierungen von einem bestimmten Treiber und einer bestimmten Datenquelle über die SQL_CONVERT Optionen in SQLGetInfo unterstützt werden. Weitere Informationen zur CONVERT-Skalarfunktion finden Sie unter Escapesequenzen in ODBC und explicit Data Type Conversion Function.