Anmelden

View Full Version : Teildateien per SQL auflisten



Seiten : [1] 2

Nennewitz
27-06-06, 09:45
Hallo Newsgroup.

Gibt es eine Möglichkeit die Teildateien, die zu einer Tabelle gehören, per SQL aufzulisten?

Viele Grüße,
Christian Nennewitz

Frank Hildebrandt
27-06-06, 10:16
Nein. Das klappt nur über den CL-Befehl DSPFD bzw. über das API QUSLMBR.

Nennewitz
27-06-06, 10:56
Nein. Das klappt nur über den CL-Befehl DSPFD bzw. über das API QUSLMBR.

Schade. Aber es hätte ja sein können. :-)
Trotzdem vielen Dank für Deine Antwort.

Viele Grüße,
Christian Nennewitz

Fuerchau
27-06-06, 11:18
Per SQL gehts mit ein bisschen Aufwand:

execute "call qcmdexc('dspfd myfile ... outfile(qtemp/mymbr)' 0000000nnn.00000)"

nnn = Länge des Commands mit 10 Vorkomma und 5 Nachkomma

Open "Select * from qtemp/mymbr"

Nennewitz
27-06-06, 16:15
Per SQL gehts mit ein bisschen Aufwand:

execute "call qcmdexc('dspfd myfile ... outfile(qtemp/mymbr)' 0000000nnn.00000)"

nnn = Länge des Commands mit 10 Vorkomma und 5 Nachkomma

Open "Select * from qtemp/mymbr"

Hallo.

Ich kenne mich nur mit Access aus und nutze die AS/400 über Pass-Through Abfragen. Ich glaube ich kann das nicht so ganz nachvollziehen. Was muß man da hinschreiben wo die ... stehen? Und was meinst Du mit Länge des Commands?

Ich habe z.B. die Bibliothek GES und eine Tabelle S8 mit Teildateien. Wie kann ich mit Deiner Methode die Teildateien von S8 anzeigen?

Viele Grüße,
Christian Nennewitz

Fuerchau
27-06-06, 16:49
Mit Access ist es da etwas schwieriger.
Du musst ein Modul in VBA schreiben und kannst dann mittels ADO den Execute auf der AS/400 ausführen.
Wenn du allerdings die Kommandos der AS/400 nicht kennst, hast du hier Probleme, da ich nicht das ganze Programm hier reinschreiben kann (und schon gar nicht für umsonst ;)).

Nennewitz
27-06-06, 18:16
Mit Access ist es da etwas schwieriger.
Du musst ein Modul in VBA schreiben und kannst dann mittels ADO den Execute auf der AS/400 ausführen.


Wie man SQL-Abfragen an die AS/400 sendet und die Ergebnisse auswertet weiß ich. Ist der Execute keine SQL-Anweisung?


Wenn du allerdings die Kommandos der AS/400 nicht kennst, hast du hier Probleme, da ich nicht das ganze Programm hier reinschreiben kann (und schon gar nicht für umsonst ;)).

Ich dachte man könnte eine Liste der Teildateien mit einem SQL-Statement abrufen. Wenn dazu AS/400 Kommandos notwendig sind und wenn es so kompliziert ist, daß Du es nicht verraten kannst, dann macht es sowieso keinen Sinn.

Trotzdem vielen Dank für die Antwort. Jetzt weiß ich zumindest mit Sicherheit das es mit SQL nicht geht.

Grüße,
Christian Nennewitz

Fuerchau
27-06-06, 21:25
Das ist soweit korrekt.

Execute ist keine SQL-Anweisung sondern eine Methode im VBA zu einem Command-Objekt.
Mittels Execute kann ich per VBA SQL-Befehle absetzen die nicht "select" heißen, also Call, Create, Delete, Update usw.
Mittels OpenRecordset wird dann eine Abfrage per "Select" ausgeführt.

Es geht hier nicht ums verraten, sondern einfach um den Aufwand, da ich hier nie Komplettlösungen einbringe sondern meist nur Wege aufzeige.
Verraten habe ich den Weg ja bereits.

Also nicht böse sein deswegen ;););)

Nennewitz
28-06-06, 06:45
Mittels Execute kann ich per VBA SQL-Befehle absetzen die nicht "select" heißen, also Call, Create, Delete, Update usw.
Mittels OpenRecordset wird dann eine Abfrage per "Select" ausgeführt.


Mir ist bekannt wie man mit Access SQL-Anweisungen auf der AS400 ausführt. Das es neben SELECT auch sowas wie UPDATE, INSERT INTO, CREATE usw. gibt ist mir auch bekannt. Ob man dazu ADO oder DAO benutzt und ob man das mit Execute oder sonst wie macht ist ja eigentlich egal.



Es geht hier nicht ums verraten, sondern einfach um den Aufwand, da ich hier nie Komplettlösungen einbringe sondern meist nur Wege aufzeige.


Was ist denn jetzt eigentlich Deiner Meinung nach so aufwändig? Das Schreiben des VBA-Codes? Das SQL-Statement? Die mysteriösen Commands? Oder was?

Das Du keine Komplettlösungen mit CD und Handbuch fertig zum Verkauf verpackt an mich lieferst ist mir klar. :) Das würde ich auch nicht verlangen.

Ich möchte doch nur wissen, wie man mit dem DB/2 SQL Teildateien auflistet. Den nötigen VBA Code kann ich mir selbst basteln.

Wenn in einer Access-Newsgroup jemand fragt, wie man die Felder einer Tabelle per VBA auflistet, dann bin ich gerne bereit das zu erklären. Auch wenn das ganze mal mehr als 3 Programmzeilen in Anspruch nimmt. Wenn hingegen einer fragt: "Wie lautet der Code um eine Finanzbuchhaltung zu entwickeln?" dann ist das was anderes.

Selbstverständlich bin ich nicht böse. Mir ist ja klar das ein Forum oder eine Newsgroup etwas ist, an dem die Leute freiwillig und ohne Bezahlung teilnehmen. Also nix für ungut. :)

Grüße,
Christian Nennewitz

JonnyRico
28-06-06, 07:34
Moin,

ich denke das Fuerchau sagen wollte das, wenn du keinen Plan der Funktionsweise der AS/400 hast das ganze ein bissel schwieriger sein könnte. Falls du es über SQL versuchen willst, solltest du dir das hier mal angucken:
http://www.rlpforen.de/showthread.php?t=4910&highlight=IBMDA400

Alternativ schlage ich dir vor das du das ActiveX-Steuerelement von ClientAccess in einem Access-Forumalt verwendest. Das ist recht simpel zu handlen. Du kann damit einfach diesem Command absetzen.
DSPFD FILE(QRPGLESRC) TYPE(*MBRLIST) OUTPUT(*OUTFILE) FILEATR(*PF) OUTFILE(MYLIB/MYOUTFILE)" aufrufen.
Im Anschluss musst du dann entweder wieder über ADO die Daten lesen oder du arbeitest mit einer eingebundenen Tabelle (ob diese nach dem Überschreiben durch den vorherigen Command allerdings dann sofort richtig ist hängt manchmal so ein bissel von der Laune von Access ab).

Gruß

Sascha