PDA

View Full Version : ISeries ODBC über Access an QUSRSYS/QAEZDISK



Littlefreddy
20-04-11, 10:21
Hallo zusammen,

da ich hier gerade verzweifel und mich nicht wirklich mit den ODBC Paramtern auskenne,dachte ich ich frag mal hier.

Irgendwie sind die ganzen Parameter in der ODBC Verbindung mir etwas Suspekt egal was ich einstelle mal macht er das was ich will mal nicht. Wie gebe ich z.B. ne Library List an. Wenn ich unter Library List was angebe nimmt er es nicht außer es sind Librarys. Manchmal zeigt er mir nicht alle auf dem system befindlichen Libs an obwohl die Option gesetzt ist.

Naja jetzt zum eigentlichen Thema zur besseren und einfacheren Auswertung der Festplatten Belegung bin ich gerade dabei eine Access Datenbank zu stricken die aus den Daten der QAEZDISK mir Sätze auslesen soll und in einer Tabelle ablegen soll. Doch es scheitert quasi schon daran das ich die QUSRSYS nicht sehe in meiner ODBC Tabellenverknüpfung :-( Kriegt man die irgendwie doch rein oder muss ich hier mit nem logischen File in einer nicht Systemlib arbeiten?

Ich hoffe das Problem ist verständlich.

andreaspr@aon.at
20-04-11, 11:19
hi,

was die libs betrifft, musst du auf das NAMING achten.
wenn du sql verwendest kannst du nur 1 lib angeben. verwendest du system kannst du mehrere angeben.
Connection string keywords (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzaik/connectkeywords.htm)
du musst auch darauf achten, dass bei sql eine andere nominklatur ist.

sql:
select * from lib.tab1
system:
select * from lib/tab1

Littlefreddy
20-04-11, 12:00
genau so eine Beschreibung habe ich gesucht *freu* Danke!

Naja das Problem bleibt allerdings ich sehe keine QUSRSYS in der Quellen auswahl :-( Oder muss ich das mit VB.NET machen? Denn bei Access kriegt man ja ne Auswahl leiste mit allen in den Libs befindlichen files,da fehlt mir die komplette QUSRSYS!

Fuerchau
20-04-11, 12:53
Die Libliste hat mit dem Naming nix zu tun. Man kann natürlich mehrere Libs angeben, allerdings darf eine Lib nicht 2 Mal vorhanden sein.
Da die QUSRSYS bereits im Systemteil der Libl steht, kann sie dem Userteil nicht mehr hinzugefügt werden.

Was das Naming angeht so betrifft dies nur die unqualifizierte Benennung von Tabellen.

Bei "Select * from MyTable" wird die Tabelle mit Naming=SQL in der Lib mit Namen des Benutzers oder der sog. SQL-Bibliothek bzw. Standard-Lib gesucht.
Bei einer Qualifizierung ist das egal.
Bei Naming SQL können auch Funktionen/Prozeduren qualifiziert aufgerufen werden "select mylib.myfunc(...) ...".
Bei Naming *SYS ist eine Qualifizierung von Funktionen/Prozeduren nicht möglich, da der "/" dann als Divide interpretiert wird ausser beim " from Mylib/MyTable".

Eine Libl wird benötigt, wenn man externe bzw. selbstgestrickte SQL-Funktionen/Prozeduren aufruft und diese ggf. über Libl weitere Ressourcen benötigen.

Was nun den Zugriff über Access angeht so verwende doch am Besten eine SQL-Passthru-Abfrage an Stelle der verknüpften Tabelle, ist bestimmt besser so (Update-Gefahr).