PDA

View Full Version : AS400 als Verbindungsserver in MSSQL



Wokli
07-07-05, 20:56
Hallo,
nachdem ich in diesem Forum einen Artikel zu diesem Thema gefunden habe, hoffe ich daß mir vielleicht jemand bei meinem Problem weiterhelfen kann.
Einrichtung und Zugriff auf eine als Verbindungsserver eingerichtete AS400 klappt von Anfang an problemlos.
Leider wird jedoch bei jeglichem Openquery() nur ein Bruchteil der erwarteten Ergebnisse zurückgegeben, auch bei Abfragen ohne Einschränkungen.
Alle Spalten sind ansonsten korrekt vorhanden, nur die Menge stimmt halt nicht. Ein Select COUNT(*) zählt jeweils die gleiche Anzahl, welche auch bei einer qualifizierten Abfrage zurückgegeben wird.
Mache ich etwas falsch oder hat jemand eine Idee warum das nicht korrekt funktioniert.
Bin dankbar für jede Hilfe!!!

Fuerchau
08-07-05, 09:52
Ggf. gibt es eine Einschränkung bzgl. der MAXRECORDS-Eigenschaft ?
Vielleicht lädt der MSSQL die Daten in einen Cache und führt folgende Abfragen aus dem Cache aus ?

Prüfe diesbezüglich mal die Einstellmöglichkeiten des MSSQL.

Wokli
08-07-05, 14:01
Hallo Fuerchau,

es war zwar nicht im MSSQL hat mich aber auf die richtige Spur gebracht.
Im verwendeten ODBC-Treiber gibt es eine Registerkarte Leistung mit einem Button Erweitert. Da kann man einen Schwellwert für LOB in Kilobyte einstellen. Die Vergrößerung dieses Schwellwertes war die Lösung.

vielen Dank!

Fuerchau
08-07-05, 14:05
???
Arbeitest du denn mit LOB's ?

Wokli
09-07-05, 15:26
nein, in keiner Weise. Deshalb hat mich diese Einstellung zugegebenermassen auch etwas erstaunt.... nachdem ich aber den Wert wieder verkleinert habe und das alte Problem wieder da war, kann ich definitiv sagen, daß die zurückgegebene Menge eindeutig von diesem Wert abhängt. Verständlich ist mir das ganze auch nicht .

iseries
01-03-06, 15:13
Hallo!
Ich hatte das selbe Problem mit dem ODBC Zugriff. Es kam immer nur ein Teil der Datensätze zurück. Ich habe nun den Verbindungsserver über OLE konfiguriert und es klappt einwandfrei.
Um OLE verwenden zu können, muß im MSSQL-Verbindungsserver als Datenquelle "IBMDA400" und in der Providerzeichenfolge "Initial Catalog=meinAS400Datenbankname;Data Source=meineAS400Adresse;Catalog Library List = meineZielbibliothek" drin stehen. Benutzer und Kennwort auf dem Tab "Sicherheit" eintragen und es geht.

iseries
01-03-06, 15:18
Hallo!
Ich hatte genau das selbe Problem mit ODBC. Ich habe dann auf OLE umgestellt und es funktioniert einwandfrei. Die neueste Client-Access Version mit dem aktuellsten Service-Pack sollte es aber schon sein.
Im MSSQL-Verbindungsserver dann als Provider "IBM DB2 UDB for Iseries IBMDA400 OLE..." eintragen. Als Datenquelle "IBMDA400" und als Providerzeichenfolge "Initial Catalog=meinAS400Datenbankname;Data Source=meineAS400AdresseoderSystemname;Catalog Library List = meineStartbibliothek"
eintragen. Benutzer und Kennwort im Reiter "Sicherheit" hinterlegen.