View Full Version : Datentransfer MSSQL auf AS/400
Hallo
Ich habe die AS/400 im MSSQL als Verbindungsserver (engl. "Linked Server") eingebunden.
Ein SQL-Select auf die AS funktioniert auch, aber wenn ich ein insert/update machen will und die Tabelle im AS nicht journalisiert ist, kommt folgender Fehler: "[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB provider returned message: [IBM][Client Access Express ODBC Driver (32-bit)][DB2/400 SQL]SQL7008 - TABELLE in LIBRARY für Operation ungültig.]"
Wenn sie journaled ist, funktioniert es.
Kann mir wer sagen, ob/wie es möglich ist, update/insert zu machen, ohne die Tabelle zu journalisieren?
in der ODBC Verwaltung Commitment-Control ausschalten :
Verwaltung -> Datenquellen (ODBC)
entsprechende Datenquelle auswählen
Notebookseite "Server"
Commit-Modus : Sofortiges COMMIT (*NONE)
Gruß Rolf
Das hilft auch nicht, aber danke.
Journaling für die Tabelle zu aktivieren scheint die einzige Möglichkeit zu sein.
Das hilft aber auch nur für INSERT; DELETE und UPDATE werden nun mit folgendem Fehler quitiert:
[Microsoft][ODBC SQL Server Driver][SQL Server]Tabelle '"SYSTEM"."LIBRARY"."TABELLE"' von OLE DB-Provider 'MSDASQL' konnte nicht geöffnet werden. Der Provider konnte eine Position für die Zeilensuche nicht unterstützen.
Jemand eine idee?
Wir haben den ODBC Treiber C/A version 8.0 im Einsatz
Vielen Dank
[Dieser Beitrag wurde von synus am 26. März 2002 editiert.]
[Dieser Beitrag wurde von synus am 26. März 2002 editiert.]
.
[Dieser Beitrag wurde von synus am 26. März 2002 editiert.]
1. Zu Commitment-Control:
Im MSSQL dürfen die Anweisung BeginnTransaction und Commit/Rollback nicht angewandt werden, wenn keine Journalisierung aktiv ist. Die Transaction-Unterstützung für die ODBC-Quelle muss im MSSQL abgeschaltet werden.
2. zu Update/Delete
MSSQL arbeitet immer mit Schlüsseln. Sind keine Schlüssel definiert, erlaubt MSSQL nur SELECT und INSERT.
Beim Einbinden der ODBC-Tabelle müssen daher Felder als Schlüssel angegeben werden.
Achtung: Wenn der Schlüssel nicht EINDEUTIG ist lehnt MSSQL auch hier einen UPDATE / DELETE ab, wenn mehr als 1 Satz gefunden wird.
Als Alternative können sie auch einen ODBC-Direkt-Bereich verwenden (oder SQL-Paththru). Damit wird dann MSSQL (und Transaction) abgeschaltet und alles, was die AS/400 kann, kann verwendet werden.
Danke
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von Fuerchau:
Beim Einbinden der ODBC-Tabelle müssen daher Felder als Schlüssel angegeben werden.
Achtung: Wenn der Schlüssel nicht EINDEUTIG ist lehnt MSSQL auch hier einen UPDATE / DELETE ab, wenn mehr als 1 Satz gefunden wird.[/quote]
Wie kann ich das mit die Schlüssel beim Einbinden in den MSSQL7 bewerkstelligen?
In der AS/400 hat die Tabelle einen eindeutigen Schlüssel, der aber MSSQL anscheinend nicht übernimmt.
Oder wie kann ich einen ODBC-Direkt-Bereich definieren?
[Dieser Beitrag wurde von synus am 02. April 2002 editiert.]
Hallo Leute
Problem hat sich erledigt,
Client Express V5R1 hat einen BUG
Mit neuestem Service Pack klappt es
Vielen Dank
Roberto