Anmelden

View Full Version : iSeries als Verbindungsserver auf MSSQL 2005



Ottersberg
23-04-08, 13:22
Ich versuche die iSeries als Verbindungsserver an den MS SQL-Server zu koppeln. Leider gelingt mir das nicht.
Ich habe jetzt schon an verschiedenen Stellen im Internet geguckt, z.B. auch hier:
http://www.newsolutions.de/forum-systemi-as400-i5-iseries/newsboard-programmierung/6629-ms-sql-server-iseries-verbindungsserver.html
MC Press Online - DB2 Integration with SQL Server 2005, Part I: Linked Server Enhancements (http://www.mcpressonline.com/database/db2/db2-integration-with-sql-server-2005-part-i-linked-server-enhancements.html)

Ich habe jetzt sowohl den IBMDASQL ausprobiert, als auch den MSDASQL, mit Angabe des ODBC-Treibers.

Unter Sicherheit habe ich immer den Benutzer und das Passwort eingetragen.

Versuche mit IBMDASQL:

Produktname: [Systemname]
Datenquelle: [Systemname]
Anbieterzeichenfolge: leer
Katalog: [Katalogname]
Verbindung geht, aber es werden keine Tabellen angezeigt.

Produktname: [Systemname]
Datenquelle: [Systemname]
Anbieterzeichenfolge: [Bibliothek]
Katalog: [Katalogname]
Keine Verbindung und Meldung:
Das Datenquellenobjekt des OLE DB-Anbieters "IBMDASQL" für den Verbindungsserver "[Systemname]" kann nicht initialisiert werden. (.Net SqlClient Data Provider)

Versuche mit MSDASQL:

Produktname: [Systemname]
Datenquelle: [ODBC-Treiber]
Rest leer

Produktname: [Systemname]
Datenquelle: [ODBC-Treiber]
Anbieterzeichenfolge: leer
Katalog: [Katalogname]

Produktname: [Systemname]
Datenquelle: [ODBC-Treiber]
Anbieterzeichenfolge: [Bibliothek]
Katalog: [Katalogname]

Tabellen werden angezeigt.
Bei einem select * from System.Katalog.Bibliothek.Tabelle führt zum Fehler:
Meldung 7313, Ebene 16, Status 1, Zeile 1
Ein ungültiges Schema oder ein ungültiger Katalog wurde für den Anbieter "MSDASQL" für den Verbindungsserver "[Systemname]" angegeben.

Ein select * from openquery([Verbindungsservername], 'select * from [Bibliothek].[Tabelle]') funktioniert. Nur leider kann openquery nur select und kein insert und das wird benötigt.

Wenn ich einen Rechtsklick auf die Tabelle mache und sage Script erstellen für Insert kommt:
System.Katalog.Bibliothek.Tabelle enthält keine Spalten, die ausgewählt werden können, oder der aktuelle Benutzer hat keine Berechtigungen für dieses Objekt.

Unter Excel funktioniert der ODBC-Treiber.

Er ist momentan so eingestellt:
System: [Systemname]
Standard-Benutzer-ID: kein
SQL-Standardbibliothek: QGPL
Bibliothektsliste: [Bibliothek]
COMMIT-Modus: Sofortiges Commit
Am Rest ist nicht verändert worden.


Kann mir jemand helfen?

Ottersberg
24-04-08, 07:35
Ich habe das Problem gefunden. Unter Produktname muss nicht der Name des Systems, sondern scheinbar so etwas wie der Name des Treibers. Das ganze muss so aussehen, bei Verwendung von IBMDASQL.

Produktname: DB2400 UDB for iSeries
Datenquelle: [Systemname]
Anbieterzeichenfolge: leer
Katalog: [Katalogname]

Dann werden weiterhin keine Tabellen angezeigt. Ein select * from System.Katalog.Bibliothek.Tabelle bringt aber Ergebnisse.

Gibt man unter Anbieterzeichenfolge noch 'Default Collection=[Bibliothek];' ein werden auch dessen Tabellen angezeigt.