PDA

View Full Version : Access Zugriff auf Bibliothek im IASP



ubas
08-11-07, 12:17
Hallo zusammen,
habe auf unserer neuen Anlage folgendes Problem unter V5R4:
Meine alte Access-Anwendung griff auf eine Bibliothek im ASP zu. Nun, nach Umstellung auf V5R4, befindet sich diese Bibl. im IASP. Über Access habe ich versucht diese Bibliothek meiner Anwendung hinzuzufügen. Bin da aber gescheitert. Habe die neueste Version von Access auf meinem PC installiert und bin schier am berzweifeln. Gibt es denn garkeine Möglichkeit auf Bibl. im IASP über Access zuzugreifen?

Fuerchau
08-11-07, 14:03
Das scheitert an der Lib-Liste, die im ODBC/OLEDB-Treiber angegeben werden muss.

Du kannst ggf. eine Lib im ASP erstellen, die per LF's (bzw. CREATE ALIAS) auf die Lib im IASP verweist.

RobertPic
09-11-07, 02:25
...Gibt es denn garkeine Möglichkeit auf Bibl. im IASP über Access zuzugreifen?

Das steuert man über die Jobdescription des Users, welcher bei der ODBC-Anmeldung verwendet wird.

1. Jobd ausfindig mache: WRKUSRPRF vom ODBC-Anmeldeuser

2. Jobd anpassen bzw. eine neue (*) erstellen
In der Jobdescription gibt es den Wert INLASPGRP (ASP-Anfangsgruppe), worin man dann den Namen des ASP einträgt. Ist der ASP eingetragen, kann man auch dessen Bibliotheken in die Libarylist der Jobbeschreibung eintragen.

(*) Man sollte auf keinen Fall irgendwelche Jobd verändern (z.B. QDFTJOBD), welche auch vom System benutzt werden. Wenn der ASP nicht angehängt ist, kann sich z.B. kein User mit der Jobbeschreibung anmelden.

Was macht ihr eigentlich mit dem iASP? Wir betreiben jetzt seit einiger Zeit eine Spiegelung via XSM auf eine ander Maschine. Die Umstellung der Datenbibliotheken von ASP auf einen iASP hat etwas "Bastelei" erfordert. Stichwort: Systemwert Userlibl....

/Robert

Fuerchau
09-11-07, 10:20
Bei ODBC funktioniert das leider nicht, da hier Prestart-Jobs QZDA... verwendet werden, die immer unter QUSER laufen.
Eine Änderung der Jobd zur Laufzeit ist leider nicht möglich.

Man kann allenfalls ein Kommando per QCMDEXC aufrufen, dass die IASP-Lib zur Laufzeit der Libl hinzufügt:

"call qcmdexc ('Kommando', <Länge>)"

wobei die Länge in der Form
"0000000000.00000" zu übergeben ist.

Noch besser wäre es eigentlich, SQL's immer qualifiziert mit "Lib.Table" anzugeben, dann wird eine LIBL sowieso ignoriert.

RobertPic
09-11-07, 13:55
Bei ODBC funktioniert das leider nicht...
Stimmt natürlich. Das mit der Libl der JOBD gilt nur für normale Anmeldungen.

Das mit dem ASP-Gruppe in der Jobd zieht aber auf jeden Fall - auch wenn die Jobd selber nicht zur Anwendung kommt. Damit kann man dann auch Bibliotheken aus dem iASP im ODBC-Treiber angeben.

Allerdings bin ich dabei auf eine "kleine" Schweinerei gestossen:

ODBC-Treiber: Libl DTALIB (aus einem iASP), Benutzer hat ASP im Jobd eingetragen



select * from DATEI ---> funktioniert
select * from datei ---> funktioniert nicht
select * from dtalib.datei --> funktioniert wieder
select * from dateiasp1 --> funktioniert (Datei aus dem ASP1)


D.h. im Gegensatz zum ASP1 sind manche Fälle im iASP case-sensitiv. Ob das ein Feature ist, bezweifle ich mal.....

Getestet mit MS Query. Nachdem ich nur noch eine ODBC-Anwendung habe (sonst JDBC) ist mir das bisher nicht aufgefallen...

@ubas: Die Fehlermeldungen von PC und/oder QZDA..Jobs wären nicht schlecht.

/Robert

cs400_de
09-11-07, 19:27
Hallo,

wir machen das schon seit fast zwei Jahren.
Die genaue Syntax kann ich raussuchen, wenn Sie diese noch brauchen.

Bei einem IASP kann man einen neuen Datenbanknamen im WRKRDBDIRE haben.

Wenn man die Verbindung öffnet gibt man nicht den Datenbanknamen des *sysbas an sondern den des IASP an.

Dann muss man nicht die JOBD ändern.

Grüße
Carsten Schulz