PDA

View Full Version : Update via ODBC



mdhl
18-05-06, 12:02
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

Fuerchau
18-05-06, 12:06
Normalerweiese deutet das auf fehlende Journalisierung hin.
In den Verbindungseigenschaften (ODBC-Config) in den Erweiterten Eigenschafte "Sofortiges Commit (*NONE)" auswählen.

mdhl
18-05-06, 12:11
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.

linguin
18-05-06, 12:26
Hallo,

in der ODBC Konfig im Reiter "Server" das Attribut "Schreibegeschütz" auf "lesen/schreiben" setzen ??

Vielleicht liegt (einfach) daran ??

Gruß

Fuerchau
18-05-06, 12:27
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.

mdhl
18-05-06, 12:50
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?

Fuerchau
18-05-06, 12:55
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

mdhl
18-05-06, 13:27
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.