@Fuerchau

Erstmal danke für die Antwort!
Aber ohne konkret zu wissen was sich hinter [SQL-CALL-Schnittstelle mittels
"Create Procedure"] verbirgt vermute ich das ich mich eventuell unklar ausgedrückth habe.
Vom Namen her würde ich vermuten das diese SQL-CALL Schnittstelle SQL-Befehle übergibt und das diese per "Create Procedure" ausgeführt werden!?
Das möchte ich ja gerade nicht. Der Client (PC) soll ja nur die Oberfläche (GUI) auf Windows erstellen.
Die Daten sollen ausschließlich (Ausnahmen könnten sich-nicht-verändernde Daten für das GUI-Programm sein) auf der AS/400 (Server) liegen (Stammdaten / Bewegungsdaten).
Und die Daten sollen mit herkömmlichen COBOL-Befehlen (Read / Write / Rewrite / ...) verarbeitet werden und nicht mit SQL.

Beispielszenario:
- Anwender startet auf Client (PC) die Oberfläche
- Benutzer und Passwort wird eingegeben
- PC-Programm sendet Datenstring (plus Anweisungen was mit den Daten zu geschehen hat) an die AS/400
- dort nimmt ein (wartendes) Programm die Daten entgegen
- entsprechend der Anweisungen werden die Daten an das zuständige Programm weitergeleitet
- wenn die Anweisung abgearbeitet wurde wird ein Datenstring (z.B. der Bildschirminhalt) zurückgegeben von der AS/400 an den PC
- dieser Vorgang wiederholt sich dann solange bis der Anwender das Programm beendet
(über das Netzwerk soll also im Prinzip nur der Bildschirminhalt gehen)

Ist dafür tatsächlich SQL-CALL geeignet? Dann würde ich mich in dieser Hinsicht mal schlau machen.
Ich hatte eher an eine direkte Programmkommunikation gedacht, z.B. über 'Sockets' (TCP/IP). Weiß aber nicht ob ich mit COBOL/400 die AS/400 Socket-API's ansprechen kann.
Auf dem PC weiß ich das es mit dem eingesetzten COBOL-Compiler problemlos möglich ist 'Sockets' zu nutzen.

Zusammengefasst könnte man sagen das das Ziel ist quasi eine eigene 'Runtime' auf der AS/400 zu haben welche die vom PC geschickten Daten direkt verarbeiten kann. Diese 'Runtime' sollte falls möglich in COBOL sein da die ganze Anwendung in COBOL programmiert ist.

Kann man aus COBOL/400 die AS/400 Socket-API's aufrufen? Und ab welchem Release ist das möglich?


Bezüglich der dürftigen Performance der ODBC-Anwendung:
Dafür gibt es mehrere Gründe:
1. Es wurde kein neues Datenformat erstellt sondern einfach die verschiedenen COBOL-Datensätze in verschiedenen Tabellen untergebracht
2. Es wird jeder Datensatz mit SQLFetch gelesen. SQLScrollFetch um z.B. Arrays von Datensätzen zu übertragen wird nicht genutzt.
3. Es wurden einfach nur die entsprechen READ / WRITE / REWRITE / DELETE -Befehle durch die entsprechenden SQL-Befehle ersetzt (es musste eine schnelle Lösung her und so kam man relativ zügig zu einer ablauffähigen ODBC-Anwendung)


Beste Grüße
Neptun