
最近、リモート ODBC ドライバーに接続する PHP アプリケーションを構築するタスクを受け取りました。ODBC ドライバーを入手し、テスト環境をセットアップしました。
ODBC ドライバーを扱うのは初めてなので、ドライバーに接続するために何をすればよいのか全く分かりません。コードは分かっており、ローカル マシンで PHP と DSN を使用して ODBC ドライバーに接続できました。しかし、DSN なしの接続を使用してリモート マシンから接続する必要があるため、それほど簡単ではないと思います。
ODBC ドライバーはカスタム (PARKWAY ConnectWare for Micro Focus Files) であり、ドキュメントは入手できませんでした (接続文字列パラメーターの説明のみで、これは役立ちましたが、問題を解決するには不十分でした)。Google 検索も役に立たず、何も見つかりませんでした。
ODBC ドライバーにリモート接続するには他に何が必要かご存知の方はいませんか? 論理的には、ドライバーだけでは不十分で、何らかのサーバーが必要になるのは当然です...
正しい方向へのどんな後押しでもいただければ幸いです :)
アップデート:
PARKWAY サポートから、接続文字列と基本情報が返ってきました。私の最初の直感は正しかったのです。リモート マシンの ODBC ドライバーに接続するには、PARKWAY のサーバー アプリケーションが必要です。すでにサーバー評価版をインストールしてあるので、今日少し試してみることにします。PARKWAY が提案した接続文字列は次のとおりです。
Driver=PARKWAY ConnectWare for Micro Focus Files;DBQ=D:\MyServerData;Layout=Version3;FileType=Micro Focus;Location=MyServer
今回接続しようとしたときに、別のエラーが発生しました:
SQL error: Failed to fetch error message
しかし、これはコードの問題だと思います。
答え1
役に立つコメントをありがとうございました。ようやく解決できました :)
同様の問題に悩んでいる人がいたら、私がやった方法は次のとおりです:
まず、サポートに連絡しました。珍しいソフトウェアで困ったときは、サポートに連絡するのが通常、最初に取るべきステップです。サポートにはたいてい適切な答えがあります。
ODBC ドライバーは、その名前が示すとおり、単なるドライバーです。どのような種類のリモート アクセスでも、何らかのサーバーが必要です。また、リモート データ ソースにアクセスする場合は、クライアント マシン (リモート アプリケーションが実行されるマシン) にドライバーがインストールされている必要があります。
これまでのところ順調です。私の場合、サポートから接続パラメータの説明を入手しましたが、接続文字列がどのようになっているのかまだわかりませんでした。すべて試しましたが、何も機能しませんでした (「エラー メッセージを取得できませんでした」など、あまり役に立たない奇妙なエラーが発生しました)。
ついに私はこの投稿で答えを見つけました:dsn から接続文字列へ
DSN レコードは、名前と値のペアにすぎないようです。DSN を使用してデータ ソースに接続すると機能しましたが、私の場合は DSN を使用できませんでした。そのため、REGEDIT を開き、上記の投稿で提案されているように、システム DSN の場所を開いて、必要なパラメーターを取得しました。
HKLM\Software\Wow6432Node\ODBC\ODBC.INI\
これは 32 ビットのシステム DSN レコードが保存される場所です。64 ビット バージョンを見つける必要がある場合は、次の場所にあります。
HKLM\Software\ODBC\ODBC.INI\
案の定、必要なシステム DSN がありました。接続文字列パラメータの説明があるのに、接続文字列がどのようになっているのかまだわからない理由に興味がある方は、以下をご覧ください。
リモート サーバーに接続できるようにするには、接続文字列に「場所」パラメーターを追加する必要がありました。サーバー マシンの URL や IP を追加してみましたが、うまくいきませんでした。レジストリを確認すると、この ODBC ドライバーに固有の構成ファイルに IP、ポート、プロトコルを追加する必要があることがわかりました。接続文字列内の「場所」属性には、追加した構成の名前を指定する必要がありました。