View Full Version : Command Call über c#
Hi,
wenn ich die Länge des Commands aber mit "0000000000.00000" formatiere und das Command ist länger, führt das dann nicht zu Problemen?
Oder was ist mit dieser Länge sonst gemeint?
Grüße Oli
Hi,
conn.Execute("CALL QCMDEXC ('" + command + "', '" + String.Format("{0:000000000000000.00000}",command.Length) + "')", out recAff, 0);
bringt jetzt folgende Fehlermeldung:
CPF0006: Im Befehl ist ein Fehler aufgetreten.
Ursache . . . . : Falls bei einem Teil des Befehls eine falsche Länge weitergegeben wurde, werden andere Nachrichten ausgegeben, weil der falsche Teil des Befehls analysiert wird. Fehlerbeseitigung: Die zuvor im Jobprotokoll aufgelisteten Nachrichten überprüfen. Die Fehler korrigieren und anschließend den Befehl wiederholen.
Woran kann das liegen? Die Formatierung sollte doch ok sein, oder?
Grüße Oli
andreaspr@aon.at
17-06-10, 12:02
Lass dir mal den kompletten String als Text anzeigen, was da wirklich übergeben wird.
"CALL QCMDEXC ('" + command + "', '" + String.Format("{0:000000000000000.00000}",command.Length) + "')"
Die Längenangabe muß insgesamt genau 15 Stellen lang sein, 10 Stellen vor und 5 Stellen nach dem Komma. Und sie muß in gepackter Form übergeben werden. Siehe Beschreibung. (http://publib.boulder.ibm.com/iseries/v5r2/ic2924/info/apis/qcmdexc.htm)
Das mit dem gepackt kannst du getrost vergessen, das erledigt SQL für dich automatisch.
Allerdings hast du ein paar zu viele Nullen: 10 vor dem Punkt, 5 nach dem Punkt.
Ach ja und wichtig:
Die Längenangabe selber wird nicht in Hochkomma gepackt !!!