« ある高校生の悲劇 | メイン | 冷遇されるMacユーザーと個人情報保護 »

2006年04月24日

●SQLと格闘中 その後

SQLと格闘中の中で,

オラクルを入れていないパソコンからネットワーク経由でデータベースに接続できれば一番いいのだが,やり方がわからない。

と書いたところ,きむらしのぶさんから有用なコメントが寄せられた。情報を総合すると ,

・クライアント側にまったく何もインストールせずに接続するのはたぶん無理そう。
・ただしオラクルのフルインストールは必要なく,ドライバ類だけ入れればいけるかも。
・オラクルって高いイメージがあるので,ドライバ類だけでも有料かもしれない?
・現在はOracle10gXE(Express Edition)という無償版が存在するらしい。

というようなことが判った。

「なんとなく出来そう」という感触は得られたわけで,あとはWebで得られる情報からトライアル&エラーで試していくことにする。

最初は一番有望そうなOracle10gXEを使う方法を試してみる。これは日本オラクルには情報がないので,米国オラクルのサーバで探して,英語でユーザ登録(無料)してダウンロードする。

クライアントマシンに入れるのだから,Oracle Database 10g Express Clientというのをダウンロードして,セットアップ。しかし,これだとインストールされるプログラムはターミナル用SQLクライアントしかなく,サーバー管理者の戯言さんによるとODBCドライバ類は入っているはずだが,肝心のVBのプログラムからデータベースにつながらない。ということで失敗。

Cliant以外の別バージョンを試してみても良かったが,その前にドライバ類のダウンロードも試してみることにする。

VBでソフト屋さんが作ってくれたオラクル接続用のクラスを読むと,OO4Oというプロトコル(?)でオラクルに接続しているようだ。これはOracle Object for OLEのことらしい。それを日本オラクルのページで検索すると,

Oracle Objects for OLE ダウンロード

というページが出てきた。もしかしてこれが使えるかもしれない。ダウンロードするのにユーザ登録は必要だが,ライセンス(お金)が必要とは書いていない。これだけ持っていてもデータベースが作れるわけではないので,無償という扱いなのだろうか。

Oracle Data Access Software (ODAC) インストール手順 を読むと,この中には

a) Oracle Data Provider for .NET (10.1.0.4.0)
b) Oracle ODBC Driver (10.1.0.4.0)
c) Oracle Provider for OLE DB (10.1.0.4.0)
d) Oracle Objects for OLE (10.1.0.5.2)
e) Oracle Services for Microsoft Transaction Server (10.1.0.4.0)
f) Oracle Client (10.1.0.2.0)
g) Oracle Universal Installer (10.1.0.4.0)

が入っていると書いてある。まさに欲しいのはコレ,という気がしてきた。早速ダウンロードしてインストールすると,Net Configulation Assistantがバッチリ入っている。
あとはきむらさんに教えていただいた下記のページを見て,サーバ側のリスナ設定,クライアント側のローカル・ネット・サービス名構成を設定した。

オラクルの初心者向け講座 第1章:データベース構築基礎 クライアントからの接続

そして,VBからデータベースを見に行くと,見事!ネットワークを介してオラクルデータベースに接続することができた!当たり前だがリモートデスクトップを使うよりもデータベースだけネットでつないだ方が断然快適である。

結果的には,Oracle10gXEは不要で,日本オラクルから普通にダウンロードできるプログラムがあれば済む話であった。こういうことは,知っている人にとってみれば当たり前のことなのだろうが,判らない人にはどこから手を付けていいかサッパリわからないものだ。

というわけで,きむらさんありがとうございました。

コメント

多少、てきとうなコメントだったせいか遠回りをさせてしまったようですが、何はともあれ、うまくいって良かったですね。
僕もSQLなら何とかわかるけど、個別のアプリケーションの使い方はよくわからないんだと、実感しました。Oracle10gXEでもダウンロードして、試してみようかな。

>>きむらさん
本当に助かりました。ありがとうございます。
データベースって独特な世界ですよね。今までAccessすら使う機会がなかったので,戸惑う事が多いです。
でも日常生活で必要になることってなかなかないですね。(^^;