PDA

View Full Version : RPG-CALL mit Parameter aus VB...



Seiten : 1 2 [3] 4

Fuerchau
11-05-04, 12:19
Den Code habe ich aus dem Handbuch "SQL Programming Concepts" entnommen und ist dort in ähnlicher Form zu entnehmen.

Arrays werden von SQL grundsätzlich nicht unterstützt. Hier bietet sich geradezu obige Methode an, da hier im Recordset 12 Sätze zurückgegeben werden können.

Im übrigen frage ich mich hier, was du mit den vielen Prozeduren überhaupt so treibst und du nicht ggf. in konzeptionelle Schwierigkeiten kommst.
Das Design des Ganzen sollte man vielleicht mal etwas detaillierter betrachten. Ich kann auch gerne hierzu Unterstützung leisten (siehe meine Homepage).

Fuerchau
11-05-04, 12:24
"/free" ist nur im C-Teil der Quelle erlaubt.

"/exec sql" ist nicht im Free-Format möglich (daher kein Semikolon) weil der Pre-Compiler Nicht-Free-Formate generiert.

Im Free-Format ist immer ein Semikolon am Ende einer Anweisung erforderlich, da der Compiler sonst nicht weiß wie es weiter geht.

Der Einfachheit halber hatte ich mein Beispiel auch nicht im Free-Format angegeben.

BeWe
11-05-04, 12:54
Aha, ja gut, das muss ich ja auch erst einmal wissen, gell ;).
Werde das mal gleich probieren...

Zum Konzept... ich arbeite in einem größeren Unternehmen
für welches hier intern Programmlösungen und -Anpassungen
geschrieben werden müssen. Das ganze hat alles auf einer
As400 angefangen wo die Daten auch jetzt noch Dank der
hohen Stabilität bleiben sollen.
Allerdings wollen wir uns etwas von den Scharz-grünen
Bildschirmmasken lösen und suchen daher Alternativen in
anderen Programmiersprachen wie z. B. Visual Basic, wo
ich mich ganz gut auskenne.

Unsere AS400-Programmierer tendieren eher zu Java,
wobei ich finde dass dort alles wesentlich umständlicher
ist, oder liegt das nur in meiner Java-Unwissenheit begründet?

Ich denke gerade im Office - AS400 - Datenaustausch und
überall sonst, wo Microsoft-Produkte eingesetzt werden kommt
man doch sehr, sehr viel schneller mit VB ans Ziel, oder was
kannst du da empfehlen?

Fuerchau
11-05-04, 13:35
Im MS-Office-Bereich ist tatsächlich der bessere Weg VB, VBA. Nach Möglichkeit sollte man Standard-ODBC-Zugriffe verwenden können ohne komplizierte Prozeduraufrufe !
Funktionen im Select (mittels Create Function) machen auch noch Sinn, aber für alles andere muss man ja doch schon programmieren, AddIn's entwickeln usw.

Java ist genauso gut oder schlecht wie VB, kommt auf die Entwicklungsumgebung an.
Bei VB muss ich mich ja auch nicht mehr um alles kümmern, genauso gilt dies für Java.
Der einzige Nachteil bei Java sind die Resourcen:
welche JVM soll laufen (Microsoft, IBM, Sun, ...)
wie schnell ist die Hardware
usw.
Vorteile von Java kann dir Dieter Bender sicherlich genug ausführen.

Tipp's:
Für den Download (Excel, Word-Serienbrief) sollte man die Stand-ODBC-Funktionen (MS-Query) verwenden und nicht die CA-Transfer's (siehe hierzu auch meine anderen Beiträge).
Für den Upload (aus Excel) kann ich mein Tool Upload400 wärmstens empfehlen.

BeWe
11-05-04, 14:10
Also diese hier gewünschten Lösungen bestehen nicht "nur"
darin, bestimmte Daten nach Excel zu bringen sondern schon
in richtigen Frontends, wie Lagerverwaltungen, Terminplanung
Logistik usw.
Wir haben zwar eine Lösung in Access über verknüpfte
Tabellen mal getestet jedoch ist das mit Access eine
sehr bescheidene Sache und VBA kann halt doch nicht all
das bieten, was VB kann, schon allein wegen der Unabhängig-
keit. Auch in VB habe ich über DAO-Zugriffe schon einiges
schreiben können, jedoch sind die Geschwindigkeitseinbußungen
einfach zu groß.

Die Lösung mit den RPG-Programmen ist einfach nur deswegen
sehr interessant, da es schon eine Menge davon gibt, und
es ja doch schon sehr erleichternd ist, diese Programme in
VB nicht nochmal alle neu schreiben zu müssen.

Mit deinem Beispiel komme ich allerdings immer noch nicht
ganz klar. Wie soll denn das Umwandlungsprogramm nun
wissen, wie es enden kann?

Fuerchau
11-05-04, 15:43
"return" ist der Schlüssel zum Erfolg !
Das hatte ich doch glatt vergessen.

BenderD
11-05-04, 16:06
Hallo,

nur ein paar Anmerkungen:

Java und MS Office, da fällt mir das Open Office Project ein, die da einiges an Schnittstellen basteln, habe ich aber keine eigenen Erfahrungen mit.

Java versus VB: Hauptunterschied von Java zum Rest of World ist die Menge an verfügbaren Open Source Komponenten, da kommt die meiste Produktivität her, nicht aus den Entwicklungs-Werkzeugen.

Alles was verteilte Verarbeitung angeht, ist mit Java sehr durchgängig, da man in der Regel keine Middleware braucht.

ODBC versus JDBC: JDBC scheint mir doch ausgereifter als ODBC und da geht auch mehr Entwicklungsaufwand rein, auch bei DB2/400 (oder heißt das jetzt i5 DB2/400, oder DB2/i5, oder...)

mfg

Dieter Bender



Im MS-Office-Bereich ist tatsächlich der bessere Weg VB, VBA. Nach Möglichkeit sollte man Standard-ODBC-Zugriffe verwenden können ohne komplizierte Prozeduraufrufe !
Funktionen im Select (mittels Create Function) machen auch noch Sinn, aber für alles andere muss man ja doch schon programmieren, AddIn's entwickeln usw.

Java ist genauso gut oder schlecht wie VB, kommt auf die Entwicklungsumgebung an.
Bei VB muss ich mich ja auch nicht mehr um alles kümmern, genauso gilt dies für Java.
Der einzige Nachteil bei Java sind die Resourcen:
welche JVM soll laufen (Microsoft, IBM, Sun, ...)
wie schnell ist die Hardware
usw.
Vorteile von Java kann dir Dieter Bender sicherlich genug ausführen.

Tipp's:
Für den Download (Excel, Word-Serienbrief) sollte man die Stand-ODBC-Funktionen (MS-Query) verwenden und nicht die CA-Transfer's (siehe hierzu auch meine anderen Beiträge).
Für den Upload (aus Excel) kann ich mein Tool Upload400 wärmstens empfehlen.

KM
12-05-04, 07:13
Also diese hier gewünschten Lösungen bestehen nicht "nur"
darin, bestimmte Daten nach Excel zu bringen sondern schon
in richtigen Frontends, wie Lagerverwaltungen, Terminplanung
Logistik usw.

Die Lösung mit den RPG-Programmen ist einfach nur deswegen
sehr interessant, da es schon eine Menge davon gibt, und
es ja doch schon sehr erleichternd ist, diese Programme in
VB nicht nochmal alle neu schreiben zu müssen.


Hallo BeWe,

Also wenn Du schon vorhandene RPG-Programme weitgehend nutzen willst, nicht alles neu schreiben willst und Deine schwarz-grünen Masken auf eine graphische Oberfläche umstellen willst, warum benutzt Du dann nicht einfach VARPG bzw. Visual Age for RPG ??? Die komplette Entwicklungsumgebung wird von der IBM schon mitgeliefert und man kann sich sehr schnell da reinarbeiten.

Wenn es darum geht Daten direkt aus einem RPG-Programm in Excel zu übertragen bzw. von einer Excel-Tabelle in einem RPG-Programm einzulesen, dafür benutze ich diverse Java-Klassen/ -Methoden, die von Apache for free zur Verfügung gestellt werden (Stichwort HSSF).

Gruß,
KM

BeWe
03-06-04, 09:34
Entschuldigt meine lang ausgebliebene Antwort, jedoch bin
ich aus gesundheitlichen Gründen bis heute nicht dazu
gekommen.

Von VARPG hab ich schon gehört und auch schon ein größeres
Projekt damit realisieren müssen, aber ehrlich gesagt scheint
mir das noch irgendwie in den Kinderschuhen zu stecken.
Mag sein, dass es an meiner Unwissenheit bezüglich RPG
oder an der Verwöhntheit von der bei weitem komfortableren
VB-IDE liegt, aber wenn ich nachträglich noch nicht einmal
die Tabulatorenreihenfolge unter den Controls wie Textfeldern
ändern kann, fehlt mir da etwas die Motivation ;), oder weisst
du zufällig wie das geht ? Bin für jeden Tip dankbar, da das
schon seit längerem ein Dorn im Benutzerauge ist :D

@Fürchau

Konnte das mit dem zurückgegebenen Recordset leider aus
zeitlichen Gründen noch nicht testen, werde mich aber bald
daran versuchen. Danke für den Hinweis mit Return.

Schöne Grüße aus dem Sauerlande, BeWe

KM
03-06-04, 10:00
Hallo BeWe,

Du musst einfach in der Liste der Tab-Stopps die Reihenfolge ändern. Habe es selbst gerade ausprobiert und funktioniert wunderbar. Du musst nach der Änderung erst Dein Projekt sichern, damit die Änderung wirksam wird. Anbei noch der entsprechende Auszug aus der Dokumentation. Also ich finde VARPG schon komfortabel. Ist natürlich alles Ansichtssache. Vielleicht muß man sich nur mehr damit beschäftigen.

Gruß,
KM


VisualAge RPG GUI Designer

Tabulatorpositionen ändern
Die Tabulatorpositionen können im Entwurfsfenster oder in der Baumstruktursicht geändert werden. Es können nur Komponenten innerhalb derselben Elterngruppe, aber nicht in verschiedenen Eltern neu angeordnet werden. Die Tabulatorpositionen werden wie folgt geändert:

Im Entwurfsfenster:
Tabulatorstopps und Gruppen im Dialogfenstermenü eines Erstellungsbereichs auswählen.
Die Reihenfolge der Einträge in der Liste wie gewünscht ändern:
Mit der Maus:
Nach oben verschieben oder Nach unten verschieben im Dialogfenstermenü der Komponente auswählen.
Mit der Tastatur:
Den Eintrag auswählen, der verschoben werden soll.
Die Taste Strg gedrückt halten.
Die Taste Aufwärtspfeil drücken, um die Tabulatorposition der Komponente nach oben zu verschieben; die Taste Abwärtspfeil drücken, um die Tabulatorposition der Komponente nach unten zu verschieben.
Abschließend OK auswählen.
In der Baumstruktursicht:
Die Komponente auswählen.
Die Komponente verschieben:
Mit der Maus:
Nach oben verschieben oder Nach unten verschieben im Dialogfenstermenü der Komponente auswählen.
Mit der Tastatur:
Den Eintrag auswählen, der verschoben werden soll.
Die Taste Strg gedrückt halten.
Die Taste Aufwärtspfeil drücken, um die Tabulatorposition der Komponente nach oben zu verschieben; die Taste Abwärtspfeil drücken, um die Tabulatorposition der Komponente nach unten zu verschieben.
Sobald Tabulatorstopps und Gruppenmarken festgelegt wurden, werden sie im Fenster aktiv. Die Tabulatorstopps können beim Entwerfen im Fenster mit der Tabulatortaste getestet werden.