PDA

View Full Version : SQL: Verbindung mit ferner Datenbank und aktive LIBL



CrazyJoe
31-01-08, 10:26
Hallo,

ich habe folgendes Problem:

Ich lese mittels SQL die Daten in die dazugehörigen Subfilefelder. Wenn ich dies am eigenen System mache, werden die Daten aus der Datei, welche lt. *LIBL bzw. div. Überschreibungen definiert ist gelesen, ohne dass ich im SQL-Statement den genauen Pfad angeben muß. (select a from Datei ...)

Wenn ich mich auf eine ferne DB verbinde, erhalte ich eine Fehlermeldung, dass die angegebene Datei in der LIBL nicht gefunden werden konnte. Wie kann ich auch auf dem fernen System die gleiche Datei wie auf dem eigenen System ansprechen, bzw. wie kann ich zur Laufzeit ermitteln auf welche Datei aus welcher LIB ich gerade zugreife, damit ich das SQL-Statement dementsprechend erstellen kann?

Danke im voraus!

Joe

Fuerchau
31-01-08, 12:14
Lokal kannst du das mittels CLP und RTVMBRD feststellen. OVRDBF's kann man so allerdings nicht ermitteln. Dafür gibts dann wieder API's.

Allerdings hilft dir das für Remote nicht so sehr, da du dann mit dynamischem SQL arbeiten musst.

Besser ist es da schon, gerade bei SQL mit festen Lib's zu arbeiten.

Z.B. per SET OPTION DFTRDBCOL=MYLIB.

Für das Zielsystem kannst du auch mittels SQL eine Stored Procedure (kann auch ein externes CLP sein) aufrufen, dass dir auf dem Zielsystem die LIBL setzt.

BenderD
31-01-08, 12:27
set option ist eine Compiletime Anweisung, set schema ist da meist besser (vermeidet auch allen LIBL Scharmonz.

mfg

Dieter Bender


Lokal kannst du das mittels CLP und RTVMBRD feststellen. OVRDBF's kann man so allerdings nicht ermitteln. Dafür gibts dann wieder API's.

Allerdings hilft dir das für Remote nicht so sehr, da du dann mit dynamischem SQL arbeiten musst.

Besser ist es da schon, gerade bei SQL mit festen Lib's zu arbeiten.

Z.B. per SET OPTION DFTRDBCOL=MYLIB.

Für das Zielsystem kannst du auch mittels SQL eine Stored Procedure (kann auch ein externes CLP sein) aufrufen, dass dir auf dem Zielsystem die LIBL setzt.