-
DDE Datenaustausch zwischen VARPG und Excel
Hallo zusammen,
ich habe größere Probleme mit dem DDE Protokoll um Daten aus einer VARPG-Anwendung an Excel zu schicken.
Mein Programm läuft so:
VARPG ruft ein Programm auf der AS/400 auf und übergibt einen Parameter.
Das AS/400 Programm sucht auf Grund des Parameters per SQL einige Datensätze.
Bei jedem weiteren Aufruf übergibt es einen Datensatz zurück an das VARPG Programm.
Das VARPG startet EXCEL und übergibt jeweils den gerade erhaltenen Satz per DDE an Excel.
Anschließend ruft es wieder das AS/400 Programm auf, um sich einen neuen Datensatz zu holen.
So weit, so gut.
Leider bricht mein VARPG Programm nach ca. 650 Sätzen ab und gibt mir die Fehlermeldung aus: "1408 Es sind nicht genügend Ressourcen zum Beenden der Operation vorhanden."
Selbst wenn diese Meldung nicht kommt, übergibt das VARPG zwar brav die Daten an Excel, doch ca. ab Zeile 350 schreibt Excel nichts mehr, oder macht ganz komische Dinge, z.B. fängt es nicht mehr in Spalte 1, sondern z.B. in Spalte 3 mit den Einträgen an.
Ich habe als Test mal versucht ganz stupide 10000 mal das Wort 'Test' untereinander in die Spalte 'A' zu schreiben, also keine Kommunikation zwischen AS400 und VARPG sondern nur zwischen VARPG und EXCEL. Auch hier bricht er nach ca.7000 Sätzen mit der "Ressourcen...." - Meldung ab.
Ich könnte noch mehr abstruse Ereignisse aufzählen, allerdings denke ich nicht, daß sie sich kategorisieren lassen, sondern einfach zeigen, daß bei der DDE Kommunikation nicht alles so stabil läuft.
Abschließend kann ich noch sagen, daß mich das Debuggen auf keinen neuen Weg gebracht hat. Innerhalb des VARPG sieht alles klasse aus, nur das Ergebnis in Excel fängt von einer auf die nächste Zeile urplötzlich an zu spinnen.
Hat hier irgendjemand Erfahrung. Bin für jeden Hinweis dankbar.
Email:andreas.weikl@ils-gmbh.net
Nicht weil es schwierig ist, wagen wir es nicht, sondern weil wir es nicht wagen ist es schwierig. (Sokrates)
-
DDE ist für Massendaten dieser Art auch eher nicht geeignet.
Das Problem hierbei ist, dass die Resourcen, die durch DDE (interner Speicher) belegt werden, auch wieder freigegeben werden müssen. Passiert das (wie in deinem Fall) nicht, kommt es halt zum Resourcenengpass.
Lass die lieber eine andere Kommunikation (z.B. Ausgabe in CSV-Datei und Einlesen über Excel) einfallen. Oder löse das Ganze gleich mit einem Excel-VBA-Makro.
Sowohl VARPG als auch DDE sind da eher nicht auf dem neuesten Stand der Technik.
Kann VARPG vielleicht mit ActiveX (CreateObjekt) umgehen ?
-
Schade
Das ist nicht ganz die Antwort, die ich mir erhofft hatte, allerdings befürchtet hatte ich sowas. Naja, dann laß ich mir was anderes einfallen.
Danke für die Antwort
Email:andreas.weikl@ils-gmbh.net
Nicht weil es schwierig ist, wagen wir es nicht, sondern weil wir es nicht wagen ist es schwierig. (Sokrates)
-
Hallo Spoldo,
der DDE Datenaustausch sollte wirklich nur für kleinere
Datenmengen benutzt werden. Du kannst aber sehr einfach
eine TAB separierte Exceldatei schreiben.
Ist von der Performance wesentlich besser.
Gruss
Michael
PS: VARPG kann auch Active X Komponenten benutzen. Damit
kenn ich mich aber nicht aus.
-
Kannst Du mir zu Tab-oder CSV einen Link mit Codebeispielen sagen, dann wurschtel ich mich schon rein.
Email:andreas.weikl@ils-gmbh.net
Nicht weil es schwierig ist, wagen wir es nicht, sondern weil wir es nicht wagen ist es schwierig. (Sokrates)
-
Hallo,
hier ein kleines Beispiel:
Tabulator
d Tab c x'09'
dann kannst Du einfach die Felder mit einer Datenstruktur
oder mit den O Bestimmungen schreiben
opc eadd xlsline
o Feld
o tab
Als Dateiname kannst Du z.B: excelfile.xls verwenden.
Excel öffnet die Datei dann automatisch.
Zu beachten ist noch das Du die numerischen Felder z.B. mit einer Schablone schreiben solltest.
Gruss
Michael
PS: Wir haben auch eine deutschsprachige Newsgroup bei Yahoo.
http://de.groups.yahoo.com/group/VARPGDE/
Jeder ist willkommen
-
Na gut, dann mach ich mich mal dran.
Das mit der Schablone hab ich auch schon mal probiert, hat aber nicht so überzeugend funktioniert. Ich habs aber mit
H DECEDIT('0,') und
.... Poke = %editc(variable:'4')
hingekriegt. Vielleicht kriegs ja bei einer lokalen Excel-Datei mit der Schablone auf die Reihe.
Lieben Dank für die Informationen
Email:andreas.weikl@ils-gmbh.net
Nicht weil es schwierig ist, wagen wir es nicht, sondern weil wir es nicht wagen ist es schwierig. (Sokrates)
Similar Threads
-
By Kilianski in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 22-11-06, 15:23
-
By jjagi in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 07-07-06, 08:29
-
By Kirsten Steer in forum Archiv NEWSboard Events
Antworten: 0
Letzter Beitrag: 15-06-06, 07:46
-
By Spoldo in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 19-04-05, 15:32
-
By CaddyMajor in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 29-01-05, 13:10
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks