View Full Version : ODBC-Fehler 7008 / Journalisierung
Franz Karl
15-08-12, 12:31
Ohne Journalisierung kann ich wohl keine Daten via SQL schreiben/ändern.
jetzt habe ich das Problem, das auf unserer neuen Maschine (I7) ich per ODBC kein logisches File mehr beschreiben kann (auf der alten I5) ging das.
Versuche ich die Datei an ein Journal zu hängen erhalte ich folgende Fehlermeldung
STRJRNPF FILE(X420PRDUM/BEKOEL10) JRN(#MIMIXJRN/XPPSJRN) OMTJRNE(*OPNCLO)
Datei BEKOEL10 in Bibliothek X420PRDUM ist keine physische Datei.
Wir kann ich auf der I7 Maschine auch wieder logische Sichten mit SQL aktualisieren ?
Danke für die Hilfe
Da du wohl die ODBC-Konfig neu machen musstest, hast du wohl vergessen dort den Commit-Modus wieder auf *NONE (Sofort) zu stellen.
Register Server, dann "Erweitert".
Dann brauchst du auch kein Journal mehr.
PS:
LF's brauchen nicht journalisiert zu werden, nur PF's.
Warum in aller Welt willst Du mit SQL eine logische Datei beschreiben/verändern?
Warum nicht die physische?
Bist Du sicher, dass es sich bei Deiner logischen Datei nicht um eine joined logische Datei handelt (bei der mehrere Dateien miteinander verknüpft sind)?
Joined Files können nicht upgedated werden!
Ansonsten kannst Du jederzeit ohne Journalisierung mit SQL in eine Tabelle/physische Datei oder (ungejointe) Views oder (ungejointe) logische Dateien schreiben. Das ist lediglich eine Einstellung in der ODBC-Konfiguration.
Weiterhin kannst Du ans Ende jedes Insert, Update oder Delete-Statements WITH NC (= with No Commit/Ohne Commit) hinzufügen und dann wird dieses Statement NICHT unter Commit ausgeführt.
Birgitta
Franz Karl
15-08-12, 12:57
Wie immer vielen Dank für die Hilfe.
Habe es in der ODBC Verbindung angepasst.
Aber kann es sein das wenn ich die Bibliothek im Reiter Server im Feld Bibliotheksliste eintrage und nicht im Feld Standardbibliothek, dass es nicht funktioniert ?
Ich möchte wenn es möglich ist nur noch 1 ODBC Verbindung haben, die dann alle benötigten AS400 LIB enthalten.
Einzel - Eintrag in SQL-Standardbibliothek dann funktioniert es mit dem update.
Du musst in der Konfiguration die Namenskonventionen von *SQL auf *SYS ändern.
Beim SQL-Naming kann immer nur auf eine einzige Bibliothek unqualifiziert zugegriffen werden.
Bei der Verwendung des System-Namings kannst Du die Bibliotheksliste vorgeben (und solltest die Standard-Bibliothek entfernen).
Birgitta
Franz Karl
15-08-12, 13:09
Hallo Britta,
ok verstanden. Habe ich umgestellt alle benötigten LIB in der Zeile Bibliotheksliste angegeben -dennoch SQLFehler 7008.
Eine einzelene ODBC-Verbindung nur auf diese LIB dann geht es. (keine JOIN LF)
Habe ich hier doch eine Möglichkeit dass dies unter 1 ODBC funktioniert ?
Danke
Franz
Wobei da gerade Vorsicht anzuraten ist.
Wie schnell kann da die falsche Datei geändert sein, ins besonders wenn man den selben Namen in mehreren Libs hat, dann entscheidet die 1. Lib.
Wenn mehrere ODBC-Anwendungen auf die selbe Datei aber in anderen Libs benötigt wird ist sowieso jeweils eine DSN erforderlich um die Reihenfolge der Libs zu definieren.
Bei der Konvention von *SYS ist zusätzlich zu beachten, dass die Namenskonvention bei qualifizierten Zugriffen nun LIB/SYS ist!
Hast du also schon Selects mit "... join lib.name ..." dann funktionieren diese nicht mehr.
Auch Funktionen/Proceduren lassen sich dann generell nicht mehr qualifiziert aufrufen:
select mylib/myfunc() ...
geht nicht mehr, da jetzt der Divisor erkannt wird, "mylib.myfunc()" klappt aber nur in *SQL-Naming.
Aber in der Verbindungseigenschaft beim Connection-Object kannst du ja Einstellungen der DSN überschreiben:
ConnectionString = "DSN=MyDSN;DBQ=MYLIB;"
usw.
Dann ist es egal was du konfigurierst (außer dem Zielsystem), den Rest machst du dann per Programm.
Wird denn die *physische* Datei, an der diese logische Datei hängt, im Journal aufgezeichnet?
Versuche ich die Datei an ein Journal zu hängen erhalte ich folgende Fehlermeldung
STRJRNPF FILE(X420PRDUM/BEKOEL10) JRN(#MIMIXJRN/XPPSJRN) OMTJRNE(*OPNCLO)
Datei BEKOEL10 in Bibliothek X420PRDUM ist keine physische Datei.
Wenn du immer noch SQL7008 bekommst, steht die Verbindung halt noch auf Commit.
Die Frage ist nun, wie due den Update machst und mit welchem Programm.
MS-Access zieht sich die ODBC-Einstellungen direkt in die Tabelleneigenschaften, eine spätere Änderung der DSN hat keine Auswirkung.
Über den Verknüpfungsmanager musst du die Verknüpfungen aktualisieren.
Franz Karl
15-08-12, 13:18
Das war es - diese Datei wurde nicht aufgezeichnet.
Danke