PDA

View Full Version : Linked Server von SQL2008 zu AS400 zeigt keine Bibliotheken



Seiten : 1 [2] 3

hs
04-07-12, 09:35
Vielen Dank für die Unterstützung, mit ODBC klappt es jetzt einwandfrei :)

Fuerchau
04-07-12, 09:49
Nun ja, ich weiß nicht was denn der SQL-Server bzw. der OLEDB-Treiber da so machen.

Wichtig ist folgendes:
In der QGPL werden Objekte der Art *SQLPKG angelegt.
In dem Paket QZDAPKG stehen die SQL's die vom QZDASOINIT verwendet werden.
Der ODBC/OLEDB-Treiber legt automatisch Pakete an, deren Namen in der Verbindung konfigurierbar ist, ansonsten definert er den selber.

Da SQL-Server (MS-Access teilweise ebenso) ggf. verschiedene Zugriffe versucht, kann es eben sein, dass auf V5R4 bestimmte Aktionen verfügbar sind, auf V5R2 eben nicht und somit der SQL-Server SQL-Funktionen/Prozeduren versucht aufzurufen.

Der OLEDB-Treiber unterstützt bzgl. SQL leider nicht so viel, wie der ODBC-Treiber, ins besonders Schema-Abfragen und Transaktionen.
Deshalb empfehle ich grundsätzlich den ODBC-Treiber. Dies gilt leider auch für den in CA enthaltenen .NET-Treiber.

Was also den Unterschied der Systeme angeht, so kann man das genau tatsächlich nur mit Analyse der Joblogs und SQL-Pakete feststellen.
Hierzu kann man den Debug-Modus aktivieren.

hs
04-07-12, 12:28
Nachdem Hürde No. 1 gemeistert ist stehe ich vor Hürder No. 2:

Ich führe folgenden Select am SQL-Server aus:

select * from [TESTAS400].[MEINEDB].[MEINEBIB].[MEINETAB]

Bekomme aber folgende Meldung:

Meldung 7399, Ebene 16, Status 1, Zeile 1
Der OLE DB-Anbieter 'MSDASQL' für den Verbindungsserver 'TESTAS400' hat einen Fehler gemeldet. Der Anbieter hat einen Serverfehler in einem externen Prozess verursacht.
Meldung 7330, Ebene 16, Status 2, Zeile 1
Eine Zeile kann nicht vom OLE DB-Anbieter 'MSDASQL' für den Verbindungsserver 'TESTAS400' abgerufen werden.

Muss das am ODBC was anders eingestellt werden?

Fuerchau
04-07-12, 12:35
Nun ja, da hilft ggf. wieder nur das Joblog im Debugmode.

Wie sieht es mit Journalisierung auf der AS/400 aus?
Wenn nein, muss der Commit-Modus in der ODBC-Konfig auf *NONE gestellt werden.
Wis siehts mit der CCSID der Tabellen aus?
Bei 65535 muss in "Umsetzung" ggf. 65535-Umsetzung markeirt werden.

hs
04-07-12, 12:42
Ich lese mit Standardeinstellung ohne Commit, das ist auch so i.O.
Umsetzung habe ich ein und aus getestet, daran liegt es auch nicht.

Allerdings ist mir aufgefallen, dass im Ergebnisfenster die Spalten der Tabelle angezeigt werden, nur keine Dateninhalte.

Fuerchau
04-07-12, 12:58
Jetzt wird es wirklich mühsam.
1. Betrifft es V5R2 oder V5R4 (ggf. doch inkompatibel)
2. Versuche erst mal successive Feld für Feld mal einzeln durchzugehen (ja, das ist mühsam)
3. Aktivere in der ODBC-Konfig->Diagnose den Debugmode und ggf. Joblog bei Ende.
Schau dir dann ggf. Fehlermeldungen und Hinweise im Joblog an.

hs
04-07-12, 13:05
Auf dem Server sind die CA 7.1 Treiber installiert.
OS der Test-AS400 ist 5.2. Ich denke, darin liegt der Hund begraben. Werde jetzt auch nicht so einfach einen alten 5.2 ODBC-Treiber nachinstallieren können.
Dass IBM einiges im SQL geändert hat mag ja sein, aber dass nicht mal einfache
"select feld from tabelle" mehr funktionieren ?

Debug und Jobprotokoll habe ich eingeschalten, wo kann ich das jetzt einsehen?
Sehe kein Joblog auf der AS400?

camouflage
04-07-12, 13:06
Hi,

Hast Du mal versucht anstelle ODBC oder IBMDASQL den "MS DB Provider for DB2" zu verwenden?

hs
04-07-12, 13:10
Ne, der steht bei mir nicht in der Auswahlliste?

hs
04-07-12, 13:11
2. Versuche erst mal successive Feld für Feld mal einzeln durchzugehen (ja, das ist mühsam)


Der Fehler kommt übrigens auch, wenn ich nur
"Select feld1 from tabelle"

Eingebe. Hat also mit speziellen Feöldtypen oder Inhalten nichts zu tun.