Anmelden

View Full Version : MS Sql Server + iSeries -> Verbindungsserver



Seiten : [1] 2

reraru
02-02-05, 10:07
Hallo zusammen!

Ich bin völlig ratlos und durchforste seit Tagen das Netz nach etwas brauchbaren. Ich hoffe Ihr könnt mir helfen.

Ich habe mein erstes Access Projekt mit dem MS SQL Server als
Backend begonnen. Schon nach kurzer Zeit musste ich aber feststellen das der Wechsel des BE auch einige Nachteile mit sich bringt. ;-)

Mal eben eine AS/400 DB per ODBC anflanschen ist nicht mehr.

Ich habe aus einigen Recherchen herausgefunden das der Zugriff
auf externe DBs beim SQL Server über einen "Verbindungsserver" realisiert wird.

Nun zu meinem Problem:

Ich bekomme einfach keine erfolgreiche Verbindung zur AS/400.

Aus allen Ergebnissen meiner Recherchen konnte ich nicht das passende Beispiel finden.

Ich habe es bereits über den OLEDB Provider für ODBC sowie den
IBM OLEDB Provider für die iSeries probiert. Leider kein Erfolg.

Einmal habe ich irgendwie eine Verbindung bekommen (Mir wurden AS/400 Tabellen angezeigt, dann habe ich aber eine Fehlermeldung bekommen), dann mal nicht. Bei einem anderen Versuch bekam ich die Meldung das keine Tabellen auf der AS zur Verfügung stehen.

-------

Kann mir nicht irgendwer von Euch mal ein kleines Beispiel mit sämtlichen Parametern liefern. Gerne auch ein paar Screenshots, oder ähnliches.

Ich bin völlig verzweifelt und über jede Antwort dankbar! ;-(

Vielen Dank im voraus!

Gruß René
reraru@gmx.de

Fuerchau
02-02-05, 10:46
Bei der ODBC-Verbindung ist der Eintrag der Bibliotheken wichtig. Wird dort nichts angegeben, sucht ODBC nur eine Bibliothek mit dem Namen des angemeldeten Benutzers bzw. QGPL.
Mit WRKRDBDIRE muss das eigene System (*LOCAL) mit einem Namen eingetragen sein.

reraru
02-02-05, 10:59
Hallo Fuerchau!

Kannst Du mir nicht ein Beispiel für folgenden Screenshot (ODBC Variante) geben?

http://rene-rudolf.de/as400_1.jpg

Was genau bewirkt der WRKRDBDIRE Befehl auf der AS400?

Vielen Dank im Voraus!

Gruß René

Fuerchau
02-02-05, 11:41
WRKRDBDIRE gibt der AS/400 einen Datenbankname, da die Qualifizierung von MS-Produkten (SQLServer, MS-Query) immer mit "DBNAME.COLLECTION.TABLE" stattfindet.

Nun zu deinem Problem:
Generiere über die ODBC-Verwaltung (Systemsteuerung->Verwaltung->Datenquellen) eine SYSTEM-DSN für die AS/400-Verbindung.
Wichtig ist hier unter "Erweitert" "Sofortiges COMMIT" auszuwählen, falls keine Journalisierung deiner AS/400-Tabellen besteht.

Die SQL-Standardlib läßt du leer und fügst in die Bibliotheksliste deine Libs (mit Leerzeichen getrennt) ein.
Bei deinem Verbindungsserver gibst du dann nur den Namen der SYSTEM-DSN als Datenquelle ein. Alles andere läßt du leer.

Achtung:
Der SQL-Server erlaubt dann keine Updates auf die AS/400, da die Transaktionssteuerung (COMMIT *CHG) nicht abgeschaltet werden kann.

reraru
02-02-05, 12:41
Mahlzeit Fuerchau!

Ich habe die ODBC Verbindung soweit stehen. Bis auf den Commit Modus hatte ich auch schon vorher alles richtig.

Mein Problem besteht wo mehr darin den Verbindungsserver (siehe Screenshot) einzurichten. Was muss in die angzeigten Felder?

Produktname: ?
Datenquelle: (Name der ODBC Verbindung)
Providerzeichenfolge: ?
Speicherort: ?
Katalog: ?

-> Provideroptionen ?
-> Sicherheit ?
-> Serveroptionen ?

Gruß René

Fuerchau
02-02-05, 12:46
Meines Wissens nach können diese Felder leer bleiben, da alles weiter in der DSN definiert ist.
In der Provider-Zeichenfolge könnten z.B. die Anmeldung wie "User Id=myuser;Password=mypass;" eingetragen werden (automatische Anmeldung, da der Server dies ja ggf. nicht kann).

reraru
02-02-05, 13:35
Hallo!

Danke für die prompte Antwort!

Ich stehe gerade zwischen unserem W2K Server und der iSeries mit einem Hammer!

Ich überlege aber noch welche der Kisten ich gleich platt haue! ;-)

Ich bekomme es nicht hin.

Habe es mal mit dem OLE DB Provider für ODBC probiert. Ohne weitere Parameter. Lediglich die DSN habe ich angegeben. Das kann doch eigentlich nicht so schwer sein.

Ich bekomme jetzt einfach nur noch ein Timeout (siehe neuer Screenshot).
http://rene-rudolf.de/as400_2.jpg

Gruß René

Fuerchau
02-02-05, 13:46
Dazu müsste man wissen, was der denn da abfragen will.
Übergangsweise kannst du mal den Systemwert QQRYTIMLMT höher setzen (Default 30), wer weiss was der da abfragen will, was in 30 Sekunden nicht abfragbar ist.

Nochwas:
Im Register "Pakete" der ODBConfig kannst du jeder Anwendung "Einstellung pro..." einen eigenen Namen vergeben.
Diese SQLPKG's findest du normalerweise in der QGPL. Mittels PRTSQLINF kannst du mal nachsehen, was der denn da ggf. will.

Anmerkung:
Enthält eine der Libs ein "_" ???
Dann beim ODBC-Dsn, Register "Katalog" das Suchmuster deaktivieren (Häkchen raus) !

reraru
02-02-05, 15:14
Hi!

Ich habe gerade noch probiert, probiert und probiert.

Nachdem es keine Besserung gab, habe ich die ODBC Verbindung noch einmal per MS Access geprpüft. Plötzlich funktionierte auch hier nichts mehr.

Ich habe dann auf meinem PC (SQL Server vorhanden) die gleiche Geschichte probiert, und was passiert...

ES KLAPPT! JUHU!

Ich muss jetzt wohl nur noch herausfinden warum es auf dem Server nicht funktioniert.

Ich bedanke mich vorerst herzlich bei Dir!

Einen schönen Tag noch!

Gruß René

Fuerchau
02-02-05, 18:58
Möglicherweise ist auf deinem Server CA unvollständig oder was den PTF-Stand angeht nicht identisch oder, was auch schon mal vorkommt, nicht genügend Berechtigung für die Registry (siehe auch hierzu: http://www.rlpforen.de/showthread.php?t=1259&highlight=regedit)