Anfang des Inhaltsbereichs

 Konvertierung von Datentypen 

Wenn in einer eingebetteten SQL-Anweisung der C/C++-Grunddatentyp oder der UNICODE-Datentyp eines Parameters nicht mit dem MaxDB-Datentyp der entsprechenden Tabellenspalte korrespondiert, aber konvertierbar ist, dann führt die Precompiler-Laufzeitumgebung zur Laufzeit des Anwendungsprogramms eine Konvertierung durch.

Die folgenden Tabellen zeigen, welche Konvertierungen möglich sind und welche Fehler dabei auftreten können.

C/C++-Grunddatentypen

MaxDB-Datentypen

FIXED

FLOAT

BOOLEAN

LONG

CHAR

VARCHAR

DATE/TIME

short int, int,
long int

1,2

1b,2

6

nicht erlaubt

4,5

nicht erlaubt

nicht erlaubt

float, double, long float

1a,2

2

6

nicht erlaubt

4,5

nicht erlaubt

nicht erlaubt

char [n]

4,5

4,5

nicht erlaubt

3

3

3

3

char

4,5

4,5

nicht erlaubt

nicht erlaubt

3

3

3

 

UNICODE-Datentypen

MaxDB-Datentypen

FIXED

FLOAT

BOOLEAN

LONG

CHAR

VARCHAR

DATE/TIME

SQLUCS2 [n],
SQLUTF16 [n],
TCHAR [n]

4,5,7

4,5,7

nicht erlaubt

3,7

3,7

3,7

3,7

SQLUCS2,
SQLUTF16,
TCHAR

4,5,7

4,5,7

nicht erlaubt

3,7

3,7

3,7

3,7

 

1    Es kann ein Overflow auftreten (sqlcode < 0).

1a  Bei der Übertragung eines Wertes in die Datenbanktabelle kann ein Overflow auftreten.

1b  Bei der Übertragung eines Wertes in die Host-Variable kann ein Overflow auftreten.

2    Es werden möglicherweise Nachkommastellen abgeschnitten (Indikatorwert > 0).

3    Es werden möglicherweise Zeichen abgeschnitten. Die Warnmeldung sqlwarn1 wird gesetzt. Der Indikatorwert gibt die wirkliche Länge der Zeichenkette an.

4    Bei der Konvertierung von numerischen Werten in Zeichenketten kann ein Overflow auftreten (sqlcode < 0).

5    Bei der Konvertierung von Zeichenketten in numerische Werte kann ein Overflow oder eine unzulässige Zahl auftreten (sqlcode < 0).

6    Der Wert 0 wird auf false abgebildet. Alle Werte ungleich 0 werden auf trueabgebildet.

7    Bei der Konvertierung von UNICODE-Zeichen, die sich nicht in 8-Bit-ASCII übersetzen lassen, wird eine Fehlermeldung ausgegeben (sqlcode < 0).

Siehe auch: Rückmeldungen des Datenbanksystems

 

Ende des Inhaltsbereichs