Anmelden

View Full Version : ODBC / Windows Server 2008 R2



Seiten : [1] 2

Aftershock
07-09-10, 14:33
Moin moin,

ich habe mal eine Frage zur Benutzung vom ODBC-Treiber.

Unter W2k3 funktionierte die Verbindung über PHP (extern) zur Maschine ja noch sehr schön ... Jetzt, auch mit der passenden Client Access Version (x64) (also "denke" ich auch Treiber technisch) nicht mehr.

(Warning: odbc_connect() [function.odbc-connect]: SQL error: [Microsoft][ODBC Driver Manager] Der angegebene DSN weist eine nicht übereinstimmende Architektur von Treiber und Anwendung auf., SQL state IM014 in SQLConnect).

Im Grunde sagt der Fehler aus, das es wohl doch komplett x86 Treiber sind (sprich, 32 Bit).

Hat jemand von euch schon das selbe Problem gehabt ? ... Oder evtl. auch gelöst ... Würde ich mich über eine Antwort freuen.

Oder evtl. auch bessere Vorschläge für mich, wie ich von einem externen Server/Pc weiterhin mit PHP auf die iSeries zugreifen kann ?

MfG
Aftershock

AS400.lehrling
07-09-10, 15:25
Es gibt von Microsoft eine Virtualisierte W2k / XP Version:)

Dazu braucht man die Pro /Ult Version von Win7 - Ich Denke mit deiner Server Version geht es eventuell auch;)

Gruß AS400.lehrling

PS: Spricht mal wieder für MS das ODBC nicht in der Lage ist auf die I zu zugreifen - das der Treiber in 64 Bit geschrieben ist kann ja nicht der Grund sein, die I ist ja seit Ewigkeiten mit 64 Bit unterwegs

Aftershock
07-09-10, 19:01
Moin,

Im VMWare-Kreis, auf dem WebServer noch mal extra VMWare-Player für ne alte Windows Version ... entspricht wohl nicht sooo ganz dem Sinn und Zweck :(

Hatte gehofft, das jemand das Problem andersweitig und einfacher gelöst hätte.

--

D.h. dann wohl, das ich mich doch mit dem doofen DB2-Connect quatsch tiefer auseinandersetzen muß ... wobei die ersten Versuche schon gescheitert sind, da die IBM Anleitung auf fürn Mors ist...

Naja, die Hoffnung stirbt zuletzt, vielleicht hat ja doch noch jemand anders eine schöne und schnittige Lösung dafür.

MfG
Aftershock

andreaspr@aon.at
08-09-10, 08:10
Morgen,

@AS400.lehrling: Ich verstehe deinen Satz im PS nicht. Sicher kann ganz normal via ODBC auf die AS/400 zugegriffen werden. Dass die AS/400 mit 64-Bit fährt hat mit dem ODBC-Treiber am Client nix zu tun.

@Aftershock: Das klingt für mich so, als ob du eine DSN auf einem 32-Bit System erstellt hast und dieses auf einen 64-Bit System verwenden möchtest?

AS400.lehrling
08-09-10, 08:54
Morgen,

@AS400.lehrling: Ich verstehe deinen Satz im PS nicht. Sicher kann ganz normal via ODBC auf die AS/400 zugegriffen werden. Dass die AS/400 mit 64-Bit fährt hat mit dem ODBC-Treiber am Client nix zu tun.

Wollte zum Ausdruck bringen das es eher ein Problem von MS ist, da es ja keine Rolle spielt ob nun ein Treiber in 64 oder 32 Bit geschrieben wurde

Gruß AS400.lehrling

Aftershock
08-09-10, 09:01
Morgen,

@Aftershock: Das klingt für mich so, als ob du eine DSN auf einem 32-Bit System erstellt hast und dieses auf einen 64-Bit System verwenden möchtest?
Nein, auch die DSN's sind auf dem Server neu erstellt worden (mit dem iSeries Access ODBC Driver), beim anderen steht ja ausdrücklich 32-Bit hinter.

Deshalb war ja die Frage, ob das schon einer hatte oder ob ich mal wieder die Ausnahme bin, bei solchen Fehlern.

andreaspr@aon.at
08-09-10, 09:21
Probier mal das Problem in ein entsprechendes PHP/MS-Forum zu Posten.
SQL state IM014 bedeuted - wie du schon geschrieben hast - dass die DSN ungültig ist. Vielleicht haben andere PHP Entwickler das gleiche Problem, unabhängig vom DB-System.

Aftershock
08-09-10, 11:23
Wäre eine Möglichkeit, aber da es hier um Zugriff auf die iSeries geht, find ich die Frage hier besser aufgehoben (was mich vom weitersuchen natürlich nicht abhält ;))

Kann ja schließlich nicht sein, das ich der einzige bin, dessen iSeries kein eigenes PHP oder kein SQL Server installiert hat und zur Vereinfachung von außen drauf zugegriffen wird.

Weil die alternative wäre gerade, die gesuchten Daten mit nem Query in eine Datei schreiben lassen und diese dann im WebServer wieder in MySQL einlesen zulassen, damit ich diese dann wieder abfragen kann òÓ ... hoffe soweit kommt es nicht :)

MfG
Aftershock

Fuerchau
09-09-10, 11:20
Bei der DSN-Verwaltung kannst du auch die Treiberliste aufmachen und die DLL des Treibers aufsuchen.
Schau dir dann an, in welchem Verzeichnis die DLL steht.
Für 64-Bit gibts ein 64-Bit-Verzeichnis.

Auch über die Eigenschaften der DLL müsste man erkennen können, ob die für 32- oder 64-Bit ist.

Da für ODBC der MS-ODBC-Manager involviert ist, gibt es leider keine Möglichkeit mehr einen 32-Bit-treiber zu verwenden.

Selbst wenn eine Anwendung im 32-Bit-Modus läuft, führt das laden der ODBC-Treiber immer zu einem Fehler, da
a) nur 64-Bit-Treiber gesucht werden
b) 64-Bit-Treiber aber inkompatibel zu 32-Bit-Anwendungen sind

Und Namen in der ODBC_Verwaltung sind Schall und Rauch.
Der eine Treiber heißt "Client Acces ODBC Driver (32-Bit)", der andere heißt "iSeries Access ODBC Driver", hier fehlt zwar die 32-Bit-Angabe, aber beide Einträge verweisen auf die selbe DLL.

Aftershock
09-09-10, 11:51
Ok, es gibt einige Dinge, die muss man einfach wissen oder diese finden.

Danke für die Hinweise dazu :)

--

Damit kann der Thread eigentlich geschlossen werden, da ich und wohl auch jeder andere im Prinzip erstmal nur 2 Möglichkeiten haben: a) DB2-Connect ... b) nen 32-Bit Windows zu emulieren.

Oder wir warten auf eine neue Client Access Version oder neue 64-Bit ODBC Treiber von IBM.

MfG
Aftershock