Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Der Entwurf von ODBC-APIs ähnelt anderen ISAM-APIs. Die APIs basieren auf Handles. Nach Öffnen einer Datei kann die Anwendung die zum Speichern einer Zeile benötigte Puffergröße bestimmen, zum Navigieren die Cursor-APIs verwenden und über die Bindung auf Zeilenebene optional eine oder mehrere Datenzeilen abrufen.
Daten werden in SQL-Standarddatentypen konvertiert, wie in ODBC definiert. In der folgenden Tabelle sind diese Konvertierungen aufgeführt.
DB2-Datentyp | SQL-Standarddatentyp | Verfügbar gemacht als nativer Typ in SQLGetTypeInfo | Kommentare |
---|---|---|---|
BIGINT | Eine ganze Zahl mit 8 Bytes. Dieser Datentyp wird nur von DB2 UDB unterstützt. |
||
BLOB | Ein Binary Large Object (BLOB) ist eine Zeichenfolge mit unterschiedlicher Länge, die bis zu 2 Gb lang sein kann. Ein BLOB ist in erster Linie für binärdaten vorgesehen. Dieser Datentyp wird vom ODBC-Treiber für DB2 nicht unterstützt. |
||
CHAR (BIT) | SQL_BINARY | No | Eine Zeichenfolge mit fester Länge (nur Doppelbyte). |
CHAR (SBCS) | SQL_CHAR | Yes | Eine SBCS-Zeichenfolge fester Länge. |
CHAR (GEMISCHT) | SQL_CHAR | No | Eine gemischte Zeichenfolge mit fester Länge (Einzel- und Doppelbytezeichenfolge). |
CLOB | Ein Character Large Object (CLOB) ist eine Zeichenfolge mit variabler Länge von bis zu 2 GB und enthält hauptsächlich Binärdaten. Ein CLOB wird verwendet, um große Einzelbyte-Zeichensatzdaten zu speichern. Ein CLOB wird als Zeichenfolge betrachtet. Dieser Datentyp wird vom ODBC-Treiber für DB2 nicht unterstützt. |
||
DATE | SQL_TYPE_DATE | Yes | Eine Datumszeichenfolge mit 10 Bytes. Dieser Datentyp wird zur Verwendung durch ODBC in einen SQL_DATE konvertiert. |
DBCLOB | Ein Double-Byte Character Large Object (DBCLOB) ist eine Zeichenfolge mit unterschiedlicher Länge aus Doppelbytezeichen, die bis zu 2 Gigabyte lang sein kann (1.073.741.823 Doppelbytezeichen). Ein DBCLOB wird verwendet, um große Doppelbyte-Zeichensatzdaten zu speichern. Ein DBCLOB wird als grafische Zeichenfolge betrachtet. Es wird vom ODBC-Treiber für DB2 nicht unterstützt. |
||
DECIMAL | SQL_DECIMAL | Yes | Eine gepackte Dezimalzahl. |
DOUBLE | SQL_DOUBLE | Yes | Eine Gleitkommazahl mit doppelter Genauigkeit von 8 Byte. |
FLOAT | SQL_FLOAT | Yes | Eine Gleitkommazahl mit doppelter Genauigkeit von 8 Byte. Dieser Datentyp ist mit DOUBLE identisch. |
GRAPHIC (DBCS) | SQL_CHAR | No | Eine Grafische Zeichenfolge mit fester Länge, die aus einer Sequenz von Zeichenfolgendaten mit doppelten Bytezeichen (nur DBCS) besteht. |
INTEGER | SQL_INTEGER | Yes | Eine ganze 4-Byte-Zahl mit einer Genauigkeit von 10 Ziffern im Bereich von -2.147.463.648 bis +2.147.483.647. |
LONG VARCHAR (BIT) | SQL_BINARY | No | Eine Zeichenfolge mit unterschiedlicher Länge (nur Doppelbyte). |
LONG VARCHAR (SBCS) | SQL_CHAR | No | Eine SBCS-Zeichenfolge mit unterschiedlicher Länge. |
LONG VARCHAR (MIXED) | SQL_CHAR | No | Eine Zeichenfolge mit unterschiedlicher Länge (single- und double-byte). |
LONG VARGRAPHIC (DBCS) | SQL_LONGVARCHAR | No | Eine grafische Zeichenfolge mit unterschiedlicher Länge, die aus einer Sequenz von Zeichenfolgendaten mit doppelbyte (nur DBCS) besteht. |
SMALLINT | SQL_SMALLINT | Yes | Eine SMALLINT (kleine ganze Zahl) ist eine ganze Zahl mit 2 Bytes und einer Genauigkeit von fünf Stellen im Bereich von -32.768 bis +32.767. |
REAL | SQL_REAL | Yes | Eine 4-Byte-Gleitkommazahl mit einfacher Genauigkeit. |
TIME | SQL_TYPE_TIME | Yes | Eine Zeitzeichenfolge mit 8 Bytes. Bei Verwenden von ActiveX Data Objects zum Zurückgeben von Daten mit einem DB2 TIME-Datentyp gibt ADO einen DATETIME-Wert zurück. |
TIMESTAMP | SQL_TYPE_TIMESTAMP | Yes | Eine Zeichenfolge mit 26 Bytes zum Abbilden von Datum, Uhrzeit und Mikrosekunden. |
VARCHAR (BIT) | SQL_BINARY | No | Eine Zeichenfolge mit unterschiedlicher Länge (nur double-byte). |
VARCHAR (SBCS) | SQL_CHAR | Yes | Eine Zeichenfolge variabler Länge. |
VARCHAR (MIXED) | SQL_CHAR | No | Eine gemischte Zeichenfolge mit unterschiedlicher Länge (Single- und Double-Bye). |
VARGRAPHIC (DBCS) | SQL_VARCHAR | No | Eine grafische Zeichenfolge unterschiedlicher Länge, die aus einer Sequenz von Doppelbyte (nur DBCS)-Zeichenfolgendaten besteht. |
Nicht alle Plattformen und Versionen von DB2 unterstützen alle oben referenzierten Datentypen. In Ihrer IBM SQL-Referenz finden Sie die spezifische Ziel- und Plattform- und Version von DB2.
Der ODBC-Treiber für DB2 macht nur ausgewählte DB2-Datentypen als native Typen in der ODBC-Katalogfunktion GetTypeInfo verfügbar. Der Treiber macht z. B. keine TYPEN LONG CHARACTER oder VARYING LONG CHARACTER verfügbar. Vielmehr werden diese Typen als CHARACTER bzw. VARYING CHARACTER verfügbar gemacht. Außerdem macht der Treiber CHARACTER FOR SBCS DATA, CHARACTER FOR MIXED DATA und CHARACTER FOR BIT DATA als CHARACTER verfügbar. Der Treiber macht VARIABLES CHARACTER FÜR SBCS-DATEN, VARIIERENDE ZEICHEN FÜR GEMISCHTE DATEN UND VARIIERENDE ZEICHEN FÜR BITDATEN ALS VARIIERENDE ZEICHEN VERFÜGBAR. Der ODBC-Treiber für DB2 gibt jedoch diese Datentypen LONG und VARYING LONG zurück, wenn eine Tabelle mit diesen Datentypen gelesen wird. Wenn Sie beispielsweise eine Tabelle mit einer variablen Zeichenfolge mit einer Länge von mehr als 254 Bytes lesen, gibt der ODBC-Treiber für DB2 eine LONG VARCHAR zurück.
Die maximale Länge der DB2-Zeichen- und Grafikzeichenfolgendatentypen hängt von der DB2-Plattform und -Version ab. Beispielsweise weist ein CHAR-Typ in DB2 für z/OS V5R1 eine maximale Länge von 254 Bytes auf, während ein CHAR-Typ in DB2/400 V4R4 eine maximale Länge von 32.766 Bytes aufweist.
Datenkonvertierungen von einem großen numerischen Typ in einen kleinen numerischen Typ werden unterstützt (z. B. von DOUBLE zu SINGLE und von INT in SMALLINT), es können jedoch Abschneiden und Konvertierungsfehler auftreten, die vom ODBC-Treiber für DB2 nicht gemeldet werden.
Mithilfe des ODBC-Treibers für DB2 sind bestimmte Konvertierungen von Zeichenfolgen von EBCDIC in ASCII und dann zurück in EBCDIC asymmetrisch und können zu Zeichenfolgen führen, die sich von der ursprünglichen Zeichenfolge unterscheiden. Die EBCDIC-Spezifikation enthält Ordinalzahlen, für die es kein definiertes Zeichen gibt. Der ODBC-Treiber für DB2 übersetzt alle solchen undefinierten Zeichen in das Fragezeichen ("?"). Wenn ALSO ASCII-Zeichenfolgen, die diese Zeichen enthalten, wieder in EBCDIC konvertiert werden, werden diese nicht definierten Zeichen durch Fragezeichen ersetzt. Um EBCDIC-Zeichenfolgen mit undefinierten Zeichen zu schützen, müssen diese Felder als Binärzeichenfolgen markiert und von der Anwendung zugeordnet werden.
Die betroffenen ANSI-in-EBCDIC-Zeichenkonvertierungen umfassen Folgendes:
Zeichenwert (dezimal) | Zeichenwert (hexadezimal) | ANSI-Codepage 1252 | EBCDIC-Zeichen nach Konvertierung in CCSID 37 |
---|---|---|---|
128 | 0x80 | Nicht verwendet | ? |
130 | 0x82 | Einfaches unteres Anführungszeichen | ? |
131 | 0x83 | Lateinisches F mit Haken | ? |
132 | 0x84 | Doppeltes unteres Anführungszeichen | ? |
133 | 0x85 | Auslassungszeichen | ? |
134 | 0x86 | Kreuz | ? |
135 | 0x87 | Doppelkreuz | ? |
136 | 0x88 | Pro Meile | ? |
137 | 0x89 | S mit Caron | ? |
138 | 0x8A | Winkelzeichen links | ? |
139 | 0x8B | Ligatur Oe | ? |
140 | 0x8C | Nicht verwendet | ? |
142 | 0x8E | Nicht verwendet | ? |
145-156 | 0x91-0x9C | ? | |
158-159 | 0x9E-0x9F | ? |