- ベストアンサー
2つの異なるサーバーのDBを扱う
現在、Visual Studio 2005(BASIC) を使って、Aのサーバー(IIS)に画像データを貯めるWebプログラムを作成しようとしています。この管理にはMDB形式のDBを使用する予定です。 ところが、このサービスを利用できるユーザーの管理は、Bのサーバー(UNIX MySQL)のDBで管理されています。 このように、Aのサーバーで動作するWebプログラムからBのサーバーのDBに接続することは可能なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
もし環境的に許されるのであれば、MDB形式ということなので、AccessからODBC接続を使って、MySQLにリンク参照させる手もありますけどね。 そうすれば、MDBのテーブルもMySQLのテーブルも全部、MDBに統一されるので、MDBだけを意識するだけで済むので、一番手っ取り早い方法です。 しかし、この方法は弱点もあります。 やはり所詮、MDBファイル&ODBC接続なので、レスポンスは悪いです。 レスポンスをあまり求められないんだったら、これでもいいとは思いますけどね。 また、redfox63さんのやり方もありますが、MySQL側で定義している文字コードが、UNIXの標準文字コードEUCだったりすると、Visual Studio 2005から直接MySQLを見に行くつくりは、事実上できないです。 (やろうと思えばできますが、EUCコード→SJIS or UTF-8変換のプログラムを作るはめになります) MySQL側が既定の文字コードUTF-8でインストールしていれば、Visual Studio 2005からでも直接接続すれば見ることができます。 そうすれば、redfox63さんの言うように、MDB用とMySQL用とで、接続を2種類用意するのもありですね。 ただし、このやり方にも弱点はあって、MDBのテーブルとMySQLのテーブルをJOINして結果を表示するような機能を用意する予定があったり、 MDBのトランザクションとMySQLのトランザクションを1つのトランザクションで処理しなきゃいけないとかになってしまうと、redfox63さんのやり方では確実に無理になります。 どういったプログラムや機能を作るかによっても、どういう方法がいいのか変わってきますね。 いずれにしても、何かしら弱点・リスクは背負うことになりますので、 ご注意ください。
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
接続に使うADO.NETのDataSourceオブジェクトを適宜使い分ければ済む話だと思います … Unix上のMySQLなどは接続したことが無いので詳細は不明ですが ログオン認証を行うページを設けておいてこちらはMySQLへ接続 画像のアップページはMDBへ接続 といった具合にしたほうがスマートでしょう または MDB側にMySqlのユーザー情報のテーブルをリンクしておくとか
お礼
redfox63様 アドバイスをありがとうございました。 別サーバーのDBに接続できるということがわかりました。 SUNから、MySQL Visual Studio プラグインが出ていましたので、 それをインストールしてみようと思います。 ありがとうございました。
お礼
kero_mioさん アドバイス、ありがとうございます。 文字コードなど、いろいろリスクがあるのがわかりました。 あとは、実験して…ということになるかと思いますが、まずは、 MySQLのほうの情報を集めてみることにします。