Da hast du ja was gemacht, was du wohl selber nicht verstehst !

Also:

as400db.Execute "CREATE PROCEDURE MyLib.MyPgm (IN :PARM1 CHAR (512), IN :PARM2 DEC(15, 5)) LANGUAGE RPG NOT DETERMINISTIC NO SQL EXTERNAL NAME MyLib.MyPgm PARAMETER STYLE GENERAL", , adExecuteNoRecords

Du solltest dein Programm und die Lib benennen, denn das wird der Name der Prozedur !
Die 2. Angabe . verweist dann tatsächlich auf das Programm !

Die Parameter definierst du auch entsprechend Deinem Programm mit IN/OUT/INOUT, Typ und Länge !

DANN kannst du auch das Programm aufrufen.

PS:
Mein Beispiel war für den Aufruf des Programmes QCMDEXC um Kommandos per SQL durchzuführen.