■H2 DB 他アプリからの利用ここではH2 Database Engineを、他のフロントエンドアプリケーションソフトから利用する方法について説明します。 具体的にはODBCを利用して、Microsoft AccessやExcelからH2 DBのテーブルに接続する方法。それとJDBCを利用して、OpenOffice BaseからH2 DBのテーブルに接続する方法です。新規データベースの作成もしくは既存データベースに接続済で、H2 Consoleが開かれているところから話を進めます(データベース作成や接続は、H2 DBの操作2 を参照)。 ■ODBCの利用
H2 DBでは専用のODBCドライバを作ることを止めてしまいました(Ver 1.0.56から)。代わりにH2 DBにPG Serverの機能を実装し、PostgresSQLプロトコルで、PostresSQL用のODBCドライバからアクセスできます。
■ODBC用H2 DB設定
ODBC接続をするためにPG Serverの機能を有効にするには、H2 DBの起動方法を変えます。H2 DBの起動方法には
このうち2008/2/2のVer 1.0.66の段階でPG Serverが使えるのは(1)か(2)だけです。このバージョンの段階ではサービスとして起動すると、PG Server機能が使えません。従ってODBC接続も出来ません。PG ServerかService Wrapperかどちらかに問題があるのでしょうが、折りを見て作者に問い合わせてみます。
この(2)もしくは(3)の方法でH2 Consoleを選択して起動した場合、実行されるのは org.h2.tools.Console というプログラムです。PG Serverを使うためには実行されるプログラムを org.h2.tools.Server に変更する必要があります。
・H2 Consoleの設定変更修正するファイルは\Documents and Settings\WindowsユーザーID\スタート メニュー\プログラム\H2にある、H2 Consoleというショートカットファイルです。このファイルのプロパティに「リンク先」がありますが、その内容を修正します(Windows2000の場合は、「タスクバーをマウス右ボタンクリックでプロパティを選択」−「詳細タブ選択」−「詳細ボタン」と進み、「プログラム」−「H2」−「H2 Console」と選択してください)。つまり「データベースファイルの場所変更」で説明したのと同じファイルです。
この「リンク先」で起動するプログラムを指定していますが、これが org.h2.tools.Console になっています。ここを org.h2.tools.Server に変更して保存してください。あとは通常どおり、スタートメニューから H2 Console を選択してH2 DBを起動するだけです。
・H2 Console (Command Line)の設定変更この場合にはバッチファイル、 H2インストールディレクトリ\bin\h2.bat を実行することによりH2 DBが起動されます。そこでこのh2.batを修正します。
バッチファイルの中では
■ODBCドライバH2 DBでは専用のODBCドライバを作ることを止めてしまいました(Ver 1.0.56から)。代わりにH2 DBにPG Serverの機能を実装し、PostgresSQLプロトコルで、PostresSQL用のODBCドライバからアクセスできます。
PostresSQL用のODBCドライバはhttp://www.postgresql.org/ftp/odbc/versions/msi/からダウンロードしてください。
・ODBCドライバインストール
ダウンロードしたファイルはZIP圧縮されているので、どこかにディレクトリを作成して展開してください。
インストールが完了したら続いてODBCの設定を行います。
タブを選択したら「追加」ボタンを押し、データソースのドライバを選択します。
続いて「ODBCデータソースの詳細設定」に移ります。ダイアログ左下の「オプション(高度な設定)」にある、「データソース」ボタンを押してください。 この設定はH2 DBの設定に直接関わるものではありません。厳密にはPostresSQL用ODBC設定の範疇に入ります。 この設定をする目的は、H2 DBのサポートフォーラム(日本語版)で報告されていた、「ODBC接続のパフォーマンスの問題」を回避するためです。 「高度な設定」ダイアログが表示されたら、「設定2」ボタンを押してください。そして「サーバー側Prepare」をチェックします。 「サーバー側Prepare」を設定した状態のサンプルは次のとおりです(「設定2」ボタンを押した状態です)。
ちなみに「データベース管理者」や、その少し上の「管理者権限の内容」の補足で挙げたような疑問は、ODBC接続にも付いてきます。
ODBC接続設定で、存在しないデータベースを指定すると、H2 Consoleで接続したときと同様に、指定したデータベースが作成されます。
MS ACCESSのようなデスクトップデータベースとして、手軽に使うには確かに良いのですが。将来のバージョンで、権限オプションでこのあたりの制御が出来るようになるとよいのですが。 ・EXCELからの利用
新しいEXCELブックを開いたら、メニューの「データ」−「外部データの取り込み」−「新しいデータベースクエリ」を選択します。
・ACCESSからの利用
Accessを立ち上げたら、メニューの「ファイル」−「開く」と進みます。「ファイルを開く」ダイアログで「ファイルの種類」に「ODBC Database」を指定します。
・OpenOffice Baseからの利用
OpenOffice Baseを起動すると、「データベースウィザード」が開きます。ここで「既存のデータベースに接続」でODBCを選択し、次に進みます。
|