Richtig,

zugegeben, erst hab ich es wirklich nicht verstanden, wie man
ja an dem obrigen Beispiel erkennen kann. Über Nacht kam dann
die Erleuchtung und heute Morgen konnte ich es korrigieren...

as400db.Execute "CREATE PROCEDURE QTEMP.QCMDPSEU10 (OUT :PARM1 CHAR (1)) LANGUAGE RPG NOT DETERMINISTIC NO SQL EXTERNAL NAME SAGPLIB.PSEULABRPG PARAMETER STYLE GENERAL", , adExecuteNoRecords

...ist der richtige Ausdruck.

Allerdings kann man es dann immer noch nicht auslesen!
Man muss dann, vor dem Ausführen des Command.Execute, noch folgendes mit dem Command-Objekt machen.

as400cmd.Parameters(0).Direction = adParamOutput
as400cmd.Parameters(0).Type = adChar
as400cmd.Parameters(0).Size = 1

Dann ist es auch nicht mehr nötig, das Array mit den Parametern zu übergeben,
was so leider nämlich nicht funktioniert hat.

Das ADODB.Command-Objekt wusste komischer weise, dass es einen Parameter hat
nach dieser Ausführung auf das Connection-Objekt Woher? Der Versuch, einen
zweiten Parameter (Index 1) zu initialisieren führte zu einer Fehlermeldung?

Jedenfalls vielen, vielen Dank für die Geduldige Unterstützung und viele Grüße
aus dem sonnigen Sauerland, BeWe