Anmelden

View Full Version : DB2-Connect: Fehler bei BIND *dringend*



Lichtblitz
21-06-05, 09:35
Hallo Spezies!

Wir haben ein Programm, dass über ODBC unter Daten variabler Länge und Timestamps auf unserer AS/400 (V4RrM0) verwaltet. Da wir hier auf einen Fehler gestossen sind, haben wir ihn mit SQL-Talk eingegrenzt:

Version OHNE BIND funktioniert:
update xxx set STATUS='1', ABFZEIT='2005-05-19-14.41.123456'
where matchcode='0003 8300039766 5411895809 5411895824';

Version MIT BIND funktioniert NICHT:
update xxx set STATUS='1', ABFZEIT=:1
where matchcode='0003 8300039766 5411895809 5411895824';
(wobei die Variable ABFZEIT anschliessend als
'2005-05-19-14.41.123456' eingegeben wird. Er hängt sich dann auf)

Auf AS/400 haben wir folgenden Fehler ermittelt:
Nachrichten-ID: CPD3E01
"Mischbyte-CCSID oder Grafic-CCSID nicht unterstützt."
Ursache:
Bei dem Versuch, auf diese relationale Datenbank zuzugreifen, hat der Anwendungsanforderer die Grafic-CCSID (Coded Charakter Set Identifier - Kennzeichnung des codierten Zeichensatzes) 1200 und die Mischbyte-CCSID 1252 gesendet. Eine oder beide dieser CCSID's werden von diesem System nicht unterstützt.
Fehlerbeseitigung:
Der Zugriff war erfolgreich, aber es wurde eine Warnung an den Anwendungsanforderer gesendet. Ist die Verwendung von Mischbyte-CCSID's oder Grafic-CCSID's erforderlich, den Anwendungsanforderer auffordern, unterstützte CCSID's zu senden.

Für baldige Hilfe wären wir sehr dankbar!

Fuerchau
21-06-05, 10:07
"ABFZEIT=:1" wird wohl nicht erkannt.
Bei embedded SQL muss eigentlich ein Variablenname "ABFZEIT=:MYVAR" angegeben werden. Ansonsten sind normalerweise Parameter-Marker erforderlich "ABFZEIT=?".

Lichtblitz
22-06-05, 07:59
"ABFZEIT=:1" wird wohl nicht erkannt.
Bei embedded SQL muss eigentlich ein Variablenname "ABFZEIT=:MYVAR" angegeben werden. Ansonsten sind normalerweise Parameter-Marker erforderlich "ABFZEIT=?".
Der Server hängt sich leider auch mit Variablenname genau so auf.

Jetzt noch etwas Merkwürdiges: Wenn ich die Version ohne BIND mit
ABFZEIT='2005-05-19-14.41.123456' angebe...
---------------------------------------------------------------
update ... set STATUS='1', ABFZEIT='2005-05-19-14.41.123456'
where matchcode='0003 8300039766 5411895809 5411895824';
---------------------------------------------------------------
... kommt die Meldung:
Error: AS: -180[IBM) [CLI Driver] [AS] SQL0180N Die Syntax der Darstellung eines Datum-/Zeitwerts als Zeichenfolge ist falsch. SQLSTATE 22007
(Dies war im ersten Beitrag fälschlicherweise als funktionierend dargestellt)

Wenn ich z.B. ABFZEIT='2005-05-19-14.41.08' angebe...
---------------------------------------------------------------
update ... set STATUS='1', ABFZEIT='2005-05-19-14.41.08'
where matchcode='0003 8300039766 5411895809 5411895824';
---------------------------------------------------------------
... heißt es
1 ROW UPDATED
ABER: Wenn ich - auch nach commit; - mir den Record auf der AS/400 ansehe,
IST ER GAR NICHT UPGEDATET!

Mysteriös, mysteriös !!!