PDA

View Full Version : Command Call über c#



Seiten : 1 [2]

Oli001
17-06-10, 11:16
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

Oli001
17-06-10, 11:26
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) + "')"

Pikachu
17-06-10, 12:15
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)

Fuerchau
17-06-10, 12:18
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 !!!