Schau dir SQL einmal genauer an.
Mit "Create Procedure" definierst du eine Prozedur, die mittels SQL-CALL aufgerufen werden kann. Du kannst sowohl Eingabe- als auch Ausgabe-Parameter definieren (wie in direkter "Call ProgName using ... " halt auch), du nutzt halt nur die fertige Kommunikation.

Da ODBC zur AS/400 nun mal über TCP/IP geht, spielen natürlich Sockets eine Rolle, da das die einzige TCP-Kommunikation ist.

Die API's kannst du nur per ILE-COBOL aufrufen, da es C-Funktionen und keine OPM-Programme sind.

Beim OLEDB IBMDA400 gibt es sogar eine direkte CALL-Schnittstelle, die mit SQL nichts zu tun hat (etwas aufwändiger als SQL).

Warum etwas neu erfinden, wenn es schon Standards gibt ?