monodbc使用方法

ここでは OpenOffice.org 3.2.1 日本語版を例に説明します。

OpenOffice.orgのデータベースセットアップ

  1. OpenOffice.orgを起動して【データベース(D)】を選択します。
  2. 「既存のデータベースに接続」にチェックをし、「ODBC(最下行)」を選択。【次へ】をクリックします。
  3. 「OpenOffice.orgデータベースウィザードへようこそ」の画面になったら「既存のデータベースに接続」にチェックをし、「ODBC(最下行)」を選択します。
  4. 「ODBCデータベースとの接続のセットアップ」の画面になったら【ブラウズ】をクリックし「データソースを選択します」の画面で「Hakama Datasource」を選択し【OK】をクリックします。
  5. 「データベースを保存したあとの処理を決定してください」の画面で【完了】をクリックすると「名前をつけて保存」画面が開きますので、名前をつけて保存します。
  6. 正常に接続できると【テーブル】を接続することでテーブル一覧が表示されます

テーブル操作の仕方

monodbcでは直接PostgreSQLデータベースに接続する場合と違い /usr/lib/jma-receipt/record/にある*.db定義体に基づき、テーブル名とパス名を '$'で連結したものとなります。

テーブル一覧からパラメータを必要としない有効なSQLのDB定義体だった場合はテーブルをクリックすることでデータを閲覧することが出来ます。パラメータを必要とする定義体は後述する方法でパラメータを渡す必要があります。

例えば tbl_byomei.dbに以下のような定義体があった場合には tbl_byomei$all というテーブル名でアクセス出来ます。

tbl_byomei {
〜〜〜〜〜略〜〜〜〜〜〜〜
}
path    all     {       
        DBSELECT        {
                DECLARE tbl_byomei_all_csr CURSOR FOR
                SELECT *
                FROM tbl_byomei
                ;
        };
};

SQLクエリーの記述の仕方

SELECT文の解釈

列名には*または、パスに存在する列名を指定できます。 SELECT文で列名のリストが指定された場合は、指定されたフォーマットで 出力されます。 たとえば、あるパスのSELECT定義が、

SELECT * from tbl_adrs$all;

となっていた場合でもODBCに対して

SELECT POST,PREFNAME,CITYNAME,TOWNNAME FROM tbl_adrs$all;

など、列名を指定すれば指定された列の並びで行が取り出せます。 ただし、通信上はパスに定義されているすべての列が送信されています。

WHEREの解釈

SQL中でのWHERE文は、単にパスにキー値を設定するだけのものになります。

例えば、tbl_adrsのSELECT定義が以下のようになっていた場合はSQLでのWHERE文はいかなる論理式を書いても:HOSPNUMに値をセットするように解釈されます。

path    all             {       
        DBSELECT        {
                DECLARE tbl_adrs_all_csr CURSOR FOR
                SELECT *
                FROM tbl_adrs
                        WHERE   HOSPNUM      =   :HOSPNUM;
        };
};

以下のようなODBCのクエリーを書いても

SELECT POST,PREFNAME,CITYNAME,TOWNNAME FROM tbl_adrs$all WHERE HOSPNUM < 1;
以下と書いた場合と結果は同じになります。
SELECT POST,PREFNAME,CITYNAME,TOWNNAME FROM tbl_adrs$all WHERE HOSPNUM = 1;

※現状ではクエリーの書き方によってエラーとなる場合もあります。


このページのトップへ