View Full Version : Update via ODBC
Hallo Forum,
ich habe folgendes Problem, ich will über eine MS-ACCESS Anfüge-Abfrage Daten via ODBC in eine AS/400 Datei laden.
Das Problem dabei ist, dass mir ACCESS folgenden Fehler bringt:
"[IBM][iSeries Access ODBC-Treiber][DB2 UDB]SQL7008-DATEI in LIB für Operation ungültig. (#-7008)"
Auf der AS/400 ist V5R2 installiert.
Client ist Windows XP MS-Access 2003
Ganz interressant wird es, wenn ich den Update von einem NT-Client aufrufe. Damit funktioniert es (noch). Aber das kann ja nicht der Weg sein, dass ich dafür eine NT-Maschine weiter supporte.
Wer kann mir da weiterhelfen?
Im Forum habe ich noch nichts gefunden.
Vielen Dank im Voraus
Normalerweiese deutet das auf fehlende Journalisierung hin.
In den Verbindungseigenschaften (ODBC-Config) in den Erweiterten Eigenschafte "Sofortiges Commit (*NONE)" auswählen.
Hallo Fuerchau,
danke für die prompte Antwort, aber das habe ich bereits getestet.
Es muß da noch etwas geben, was ich nicht berücksichtigt habe.
Hallo,
in der ODBC Konfig im Reiter "Server" das Attribut "Schreibegeschütz" auf "lesen/schreiben" setzen ??
Vielleicht liegt (einfach) daran ??
Gruß
Das kannst du nur noch per DEBUG analysieren, da die Ursache im Secondlevel der Fehlermeldung ausgegeben wird.
ODBC-Konfig->Diagnose->DEBUG starten
AS/400
WRKOBJLCK MYUSER *USRPRF
Den QZDASOINIT-Job auswählen und ins Joblog schauen.
Hallo linguin,
das habe ich als erstes kontrolliert. Das ist es nicht.
@ Fuerchau
mit Debug erhalte ich folgende Meldung:
Nachrichten-ID . . . . : CPF4328
Sendedatum . . . . . . : 18.05.06 Sendezeit . . . . . . : 13:36:25
Nachricht . . . : Teildatei CCENTER nicht in Journal *N aufgezeichnet.
Ursache . . . . : Die Teildatei CCENTER der Datei CCENTER aus der Bibliothek
LUSRC ist nicht im Journal *N in der Bibliothek *N für COMMIT-Definition
*DFTACTGRP aufgezeichnet.
-- Das angegebene Journal wird von der COMMIT-Definition *DFTACTGRP
verwendet. Wurde für das Journal *N angegeben, wird die Datei nicht
aufgezeichnet. Ist die Datei eine logische Datei, müssen alle
zugrundeliegenden physischen Dateien nicht in demselben Journal
aufgezeichnet sein, wie das die COMMIT-Steuerung erforderlich macht.
Fehlerbeseitigung: Sicherstellen, daß die geöffnete Datei aufgezeichnet
wird. Bei logischen Dateien sicherstellen, daß die zugrundeliegenden
physischen Dateien in demselben Journal aufgezeichnet werden.
Danach ist folgende Meldung zu sehen:
Nachrichten-ID . . . . : SQL7008
Sendedatum . . . . . . : 18.05.06 Sendezeit . . . . . . : 13:36:25
Nachricht . . . : CCENTER in LUSRC für Operation ungültig.
Ursache . . . . : Der Ursachencode ist 3. Ursachencodes und ihre Bedeutung:
1 -- CCENTER hat keine Teildateien
2 -- CCENTER wurde mit freiem Speicherplatz gesichert
3 -- CCENTER nicht im Journal aufgezeichnet/keine Berechtigung für
Journal. Dateien mit RI-Integritätsbedingungsaktion CASCADE, SET NULL od.
SET DEFAULT müssen im selben Journal aufgezeichnet werden.
4 und 5 -- CCENTER in Prod.bibl. gespeichert/erstellt, aber Benutzer in
Debug-Modus UPDPROD(*NO).
6 -- Datensammlung wird erstellt, aber Benutzer in Debug-Modus
UPDPROD(*NO).
7 -- Basistabelle zum Erstellen der Sicht ungültig; ist
Muß ich auf der AS/400 noch etwas machen?
Sag ich doch, dass Commit eingeschaltet ist !
Das Problem liegt in MS-Access:
Wenn eine Tabelle verknüpft wird, wird die komplette Verbindungsfolge in die Eigenschaften übernommen. Eine nachträgliche Änderung der ODBC-Konfig bewirkt nichts !
Also:
Verknüpfung entfernen
ODBC-Konfig korrigieren
Verknüpfung wiederholen
Hallo Fuerchau,
ich habe jetzt die Verknüpfung geloscht, die ODBC-Verbindung nochmal neu konfiguriert, die Verbindung wieder hergestellt und die Anfügeabfrage neu erstellt.
Das Reine konfigurieren des ODBC-Verbindung hat nichts gebracht. Nachdem ich jetzt die ODBC-Verbindung gelöscht habe und danach neu erstellt habe, funktioniert es auch.
Vielen Dank.