OpenOffice.org/Base/DB

OpenOffice.orgについてのメモ。

HSQLDB形式データベースの最適化

データベースは、運用していくうちに肥大化していく。時々最適化してあげるとよい。HSQLDBには、最適化用のSQLコマンドが用意されている。それはHSQLDBを埋め込んだBaseファイルでも有効だ。具体的には次の手順を実行すればよい。(CHECKPOINT DEFRAGだけでよいかも)

  1. Baseの[ツール]−[SQL]で「SQLステートメントの実行」を表示
  2. 実行コマンド欄に次のSQL文を入力し[実行]ボタンをクリック
    CHECKPOINT DEFRAG
  3. 同じく実行コマンド欄に次のSQL文を入力し[実行]ボタンをクリック
    SHUTDOWN COMPACT
  4. いったんBaseを終了し、該当のODBファイルのサイズが削減されていればOK
  • 参考
CHECKPOINT
http://hsqldb.org/doc/guide/ch09.html#checkpoint-section
SHUTDOWN
http://hsqldb.org/doc/guide/ch09.html#shutdown-section

LinuxでのODBC環境設定

  • Debianの場合
    # apt-get install unixodbc unixodbc-bin

    この際、libodbcinstq1とodbcinst1も自動でインストールされる。

MySQL

ODBCドライバ

  • 情報源
MySQLの活用方法その2(OOoとの連係)
http://www.freeml.com/message/knoppix@freeml.com/2191
  • Linuxでの設定
    • ODBCドライバのインストール
      • Debianの場合
        # apt-get install libmyodbc
        設定画面でドライバ登録の確認があり、[はい]を選べば自動的に以下の/etc/odbcinst.iniが作成される。
    • /etc/odbc.ini /etc/odbcinst.iniの編集
      • Debianの場合
        $ cat /etc/odbc.ini
        [myodbc]
        Driver       = MySQL
        Description  = MySQL ODBC 2.50 Driver DSN
        Server       = localhost
        Port         =
        User         =
        Password     =
        Database     = test
        Option       = 3
        Socket       =

        $ cat /etc/odbcinst.ini
        [MySQL]
        Description     = MySQL driver
        Driver          = /usr/lib/odbc/libmyodbc.so
        Setup           = /usr/lib/odbc/libodbcmyS.so
        CPTimeout       =
        CPReuse         =
        FileUsage       = 1

        /etc/odbc.iniの設定が反映されない場合は(古いSargeだったからかも)、ユーザー権限でODBCConfigを起動し、「User DNS」を設定すると、$HOME/.odbc.iniを作成し、ODBCドライバが登録される。起動時、「odbc.iniが読めない」「コンポーネントネームが認識できない」旨のエラーダイアログが表示される。

        1. 「ODBC Data Source Administrator」ダイアログの「User DNS」タブで[Add]ボタンをクリック
        2. 「Select a Driver」ダイアログで[OK]ボタンをクリック
        3. Name欄に「MySQL」、Server欄に「localhost」、Database欄に「test」、Port欄に「3306」を入力し、[Save and Exit]ボタンをクリック
        4. 「User DNS」タブに登録されているのを確認し、[OK]ボタンをクリック
  • Windows/LinuxマシンのOpenOffice.orgの設定(2.0)
    1. Baseを起動すると「データベースウィザード」ダイアログが表示される
    2. ステップ1で「既存のデータベースに接続」をチェックし、「ODBC」を選択
    3. ステップ2で「ブラウズ」をクリックし、登録したODBCデータソース名を選ぶ
    4. ステップ3でODBCデータソースにユーザー名、パスワードを登録しなかった場合は、ここでユーザー名を指定し、Password requiredをチェック、「Test Connection」ボタンでエラーにならないか確認
    5. ステップ4で「完了」をクリックし、ファイル名を指定する

      登録後、「編集」→「データベース」→「プロパティ」で「データベースプロパティ」ダイアログを開き、「追加設定」タブの文字セットをWindowsの場合は「日本語(Shit-JIS)」に、Linuxの場合は「日本語(EUC-JP)」に変更する必要がある。

JDBCドライバ

  • 情報源
UNIX USER 2005年6月号
http://www.unixuser.jp/
discuss@openoffice.orgのスレッド
http://ja.openoffice.org/servlets/BrowseList?list=discuss&by=thread&from=38002

PostgreSQL

Windows版PostgreSQLの設定

  • LAN内のマシンにサービスを提供する
    1. スタートメニューから「PostgreSQL 8.0」−「構成ファイル」−「pg_hba.confの編集」を選択
    2. 「バックエンドアクセス認証エディッタ」ダイアログの最下行□部分をダブルクリックする
    3. 「クライアントアクセス認証」ダイアログで、可能欄をチェック、データ型欄に「host」、データベース欄に「all」、ユーザー欄に「all」、IPアドレス欄に許可するホストのIPアドレス、方法欄に「md5」を入力し、[OK]ボタンをクリック
    4. 設定を保存し、「バックエンドアクセス認証エディッタ」ダイアログを終了
    5. PostgreSQLのサービスを停止し、起動

PostgreSQL接続用ネイティブドライバ

  • 情報源
postgresql-sdbc-driver
http://dba.openoffice.org/drivers/postgresql/
[ANNOUNCE]Native postgresql driver for OpenOffice.org (fwd)
http://ml.postgresql.jp/pipermail/pgsql-jp/2004-June/016788.html
  • ドライバのOpenOffice.orgへの登録手順
    1. OpenOffice.orgをクイック起動も含め終了
    2. postgresql-sdbc-$(VERSION).zipをOpenOffice1.1.x/user/uno_packagesフォルダへコピー(ネットワークインストールの場合は、管理者権限でOpenOffice1.1.x/share/uno_packagesへ)
    3. OpenOffice1.1.x/program内のpkgchkを実行する(ネットワークインストールの場合は、管理者権限で'pkgchk --shared')
    4. OpenOffice.orgの「データソースの管理」ダイアログボックスの「データベースの種類」欄で「postgresql」の登録を確認
  • KNOPPIX3.2(雑誌「Software Design」2004年1月号版)+PostgreSQL接続用ネイティブドライバでの設定
    • PostgreSQLのデフォルト環境
      • /var/lib/postgres/postgresql.conf
        #       Connection Parameters
        #
        #tcpip_socket = false
        #ssl = false
      • /var/lib/postgres/pg_hba.conf
        # TYPE  DATABASE    USER        IP-ADDRESS        IP-MASK           METHOD
        
        local   all         all                                             trust
        host    all         all         127.0.0.1         255.255.255.255   trust
        以下のようにTCP/IP経由で接続できる。
        [knoppix]$ psql -h localhost -l
                List of databases
           Name    |  Owner   | Encoding
        -----------+----------+-----------
         knoppix   | knoppix  | EUC_JP
         template0 | postgres | SQL_ASCII
         template1 | postgres | SQL_ASCII
        (3 rows)
    • ローカル接続でのOpenOffice.orgの設定(1.1)
      1. 「データソースの管理」ダイアログボックスで「新しいデータソース」をクリック
      2. 名前は任意の名称に、データベースの種類は「postgresql」、データソースURLは「sdbc:postgresql:dbname=knoppix」を指定
      3. 左から2番目のタブ(名称不明バグ?)を開き、ユーザー名に「knoppix」、文字コードセットに「日本語(EUC-JP)を指定し、「適用」ボタンをクリック
      4. テーブルタブを開き、エラーが表示されなければSDBCドライバでの接続は成功
      5. 「新しいテーブル作成」ボタンをクリックし、「テーブルデザイン」でフィールドを編集
      6. 保存時は、スキーマに「public」を選び保存(knoppixではエラーになる)
  • リモート(Windows)接続のためのPostgreSQLの設定
    • /var/lib/postgres/pg_hba.confに以下の行を追加
      host    all         all         192.168.1.0       255.255.255.0     trust
    • Windows/LinuxマシンのOpenOffice.orgの設定(1.1)
      上記の2.でデータソースURLは「sdbc:postgresql:hostaddr=192.168.1.XX dbname=knoppix」を指定
    • Windows/LinuxマシンのOpenOffice.orgの設定(2.0)
      1. Baseを起動すると「データベースウィザード」ダイアログが表示される
      2. ステップ1で「既存のデータベースに接続」をチェックし、「postgresql」を選択
      3. ステップ2で「hostaddr=192.168.1.XX dbname=knoppix」を指定
      4. ステップ3でユーザー名に「knoppix」、Password requiredをチェック、「Test Connection」ボタンでエラーにならないか確認
      5. ステップ4で「完了」をクリックし、ファイル名を指定する

ODBCドライバ

  • Linuxでの設定
    • PostgreSQL 8.0のインストール
      • Debianの場合
        # apt-get install postgresql-8.0

        実際は、libpq4、postgresql-client-8.0、postgresql-commonも自動でインストールされる。

  • ODBCドライバのインストール
    • Debianの場合
      # apt-get install odbc-postgresql
  • /etc/odbc.ini /etc/odbcinst.iniの設定
    • Debianの場合
      $ cat /etc/odbcinst.ini
      [PostgreSQL]
      Description     = PostgreSQL ODBC driver
      Driver          = /usr/lib/odbc/psqlodbc.so
      Setup           = /usr/lib/odbc/libodbcpsqlS.so
      Debug           = 0
      CommLog         = 1
  • ODBCドライバの登録
    • Debianの場合
      1. ODBCConfigを起動
      2. 「ODBC Data Source Administrator」ダイアログの「User DNS」タブで[Add]ボタンをクリック
      3. 「Select a Driver」ダイアログで[OK]ボタンをクリック
      4. Name欄に「PostgreSQL」、Server欄にPostgreSQLサーバのIPアドレス、Database欄に「db_name」、Port欄に「5431」を入力し、[Save and Exit]ボタンをクリック
      5. 「User DNS」タブに登録されているのを確認し、[OK]ボタンをクリック
  • Windows/LinuxマシンのOpenOffice.orgの設定(2.0)
    1. Baseを起動すると「データベースウィザード」ダイアログが表示される
    2. ステップ1で「既存のデータベースに接続」をチェックし、「ODBC」を選択
    3. ステップ2で「ブラウズ」をクリックし、登録したODBCデータソース名を選ぶ
    4. ステップ3でODBCデータソースにユーザー名、パスワードを登録しなかった場合は、ここでユーザー名を指定し、Password requiredをチェック、「Test Connection」ボタンでエラーにならないか確認
    5. ステップ4で「完了」をクリックし、ファイル名を指定する

      登録後、「編集」→「データベース」→「プロパティ」で「データベースプロパティ」ダイアログを開き、「追加設定」タブの文字セットをWindowsの場合は「日本語(Shit-JIS)」に、Linuxの場合は「日本語(EUC-JP)」に変更する必要がある。

JDBCドライバ

  • Linuxでの設定
    • JDBCドライバのインストール
      • Debianの場合
        # apt-get install libpgjava
    • OpenOffice.orgへのJDBCドライバの登録
      1. OpenOffice.orgのツールメニューから[オプション]を選択
      2. 「オプション」ダイアログで「OpenOffice.org」ー「Java」を選択
      3. [クラスパス]ボタンをクリックして、/usr/share/java/postgresql-jdbc3.jarを登録
      4. OpenOffice.orgを再起動する
  • Windows/LinuxマシンのOpenOffice.orgの設定(2.0)
    1. Baseを起動すると「データベースウィザード」ダイアログが表示される
    2. ステップ1で「既存のデータベースに接続」をチェックし、「JDBC」を選択
    3. ステップ2でデータソースのURLに「jdbc:postgresql://192.168.1.XX:5432/da_name」、JDBCドライバクラスに「org.postgresql.Driver」を指定し、「テストクラス」ボタンでドライバの登録を確認
    4. ステップ3でユーザー名を指定し、Password requiredをチェック、「Test Connection」ボタンでエラーにならないか確認
    5. ステップ4で「完了」をクリックし、ファイル名を指定する

Firebirdのドライバ別接続方法

データベースの文字コードは注意が必要だ。同じサーバ、クライアントとも同じOSなら共通の文字コードが無難。サーバがWindowsマシンで、Linuxマシンにもサービスする場合は、EUC-JPのデータベースを用意し、SJISのテーブルを用意すれば、両環境で運用できる。ただし、Windows側ではODBCドライバで、Linux側ではJDBCドライバで接続すること。

ODBCドライバ

  • ドライバ情報
Firebird ODBC Driver Downloads
http://firebird.sourceforge.net/index.php?op=files&id=odbc
  • Linuxでの設定
    • ODBCドライバのインストール
      • Debianの場合
        $ tar zxvf OdbcJdbc_1.2.0.69.tar.gz
        # mkdir /usr/share/doc/FirebirdODBC
        # ./install.sh --createTestDSN --libs=/usr/lib/odbc
        これで以下の/etc/odbcinst.iniにODBCドライバの設定が追加される
      • アンインストール
        # ./install.sh --uninstall --libs=/usr/lib/odbc
    • /etc/odbcinst.iniの編集
      • Debianの場合
        $ cat /etc/odbcinst.ini
        [Firebird]
        Description     = Firebird/InterBase(r) driver
        Driver          = /usr/lib/unixODBC/libOdbcJdbc.so
        Setup           = /usr/lib/unixODBC/libOdbcJdbcS.so
        FileUsage       = 1
        インストール先が違うので、該当部分を以下のように修正
        Driver          = /usr/lib/odbc/libOdbcJdbc.so
        Setup           = /usr/lib/odbc/libOdbcJdbcS.so
        ユーザー権限でODBCConfigを起動し、「User DNS」で登録を試みるも、「Could not construct a property list for (Firebird)」エラーダイアログが表示され、設定できない。以下の情報が役立つか。
        IBPhoenix-ODBCのコンパイル方法
        http://groups.yahoo.co.jp/group/Firebird-jp-general/message/1682
        Re: IBPhoenix-ODBCのコンパイル方法
        http://groups.yahoo.co.jp/group/Firebird-jp-general/message/1684
        上記のエラーダイアログは、#1682の情報から、以下のようにシンボリックリンクを貼ることで解決した。
        # cd /usr/lib
        # ln -s libstdc++.so.5.0.7 libstdc++-libc6.2-2.so.3

        #1684の情報より、OdbcJdbc-beta-2.0.0123-src.tar.gzをコンパイルしてみた。

        $ tar zxvf OdbcJdbc-beta-2.0.0123-src.tar.gz
        # apt-get install firebird2-dev unixodbc-dev
        # cd ODBC_V2-0-BETA/OdbcJdbc/Builds/Gcc.lin
        # cp makefile.linux Makefile
        # make
        OpenOffice.org Baseでは、
        [unixODBC][ODBC Firebird Driver]Unable to connect to data
        source: libraly 'IscDbc' failed to load: IscDbc:
        というエラーダイアログが表示され、データベースにアクセスできない。残念。ODBCドライバについてはここで断念。
  • WindowsマシンのOpenOffice.orgの設定(2.0)
    1. Baseを起動すると「データベースウィザード」ダイアログが表示される
    2. ステップ1で「既存のデータベースに接続」をチェックし、「ODBC」を選択
    3. ステップ2で「ブラウズ」をクリックし、登録したODBCデータソース名を選ぶ
    4. ステップ3は特に設定しない
    5. ステップ4で「完了」をクリックし、ファイル名を指定する

      登録後、「編集」→「データベース」→「プロパティ」で「データベースプロパティ」ダイアログを開き、「追加設定」タブの文字セットを「日本語(Shit-JIS)」に変更する必要がある。

JDBCドライバ

  • FirebirdのJDBCドライバ
    • 参照URL
Firebird Class 4 JCA-JDBC Driver Downloads
http://firebird.sourceforge.net/index.php?op=files&id=jaybird
JDBCドライバ本体
http://prdownloads.sourceforge.net/firebird/FirebirdSQL-1.5.5JDK_1.4.zip?download
  • Windows/LinuxマシンのOpenOffice.orgの設定(2.0)
    1. Baseを起動すると「データベースウィザード」ダイアログが表示される
    2. ステップ1で「既存のデータベースに接続」をチェックし、「JDBC」を選択
    3. ステップ2でデータソースのURLに「jdbc:firebirdsql://192.168.1.3:3050/c:\database\firebird\test.fdb」、JDBCドライバクラスに「org.firebirdsql.jdbc.FBDriver」を指定し、「テストクラス」ボタンでドライバの登録を確認
    4. ステップ3でユーザー名を指定し、Password requiredをチェック、「Test Connection」ボタンでエラーにならないか確認
    5. ステップ4で「完了」をクリックし、ファイル名を指定する

      Baseからデータの登録、更新ができない問題がある。また、Linuxでは、「java.lang.IllegalArgumentException」エラーダイアログが表示され、テーブルが読めない。これは、Windows側のFirebirdデータベースの文字コードに原因があるかもしれない。文字コードをEUC-JPにしたデータベースを用意したところ、エラーなくテーブルが表示された。ただし、Linux側ではEUC-JPをSJISな環境で読んだような文字化け状態になる。そこで、EUC-JPなデータベースにSJISのテーブルを作成してみたところ、Linuxでも文字化けせず読めました。 :-) Windows側でも、Baseでは問題ないものの、IBOConsoleではEUC-JPなデータベース上のSJISテーブルのデータが表示されない問題あり。

  • JDBCドライバでの問題と対策
テーブルにデータ入力できない
テーブル名に小文字が含まれているとこの現象が起こる。すべて大文字のテーブルならデータ入力が可能だ。
WindowsをサーバにしたFirebirdのテーブルでは、日本語のデータが文字化けする
EUC-JPのデータベースを用意し、SJISのテーブルを作成すれば、Linux側で表示も入力も文字化けしない。

SQLite

SQLiteのインストール

  • Debian Gnu/Linux 3.1の場合
    # apt-get install sqlite3 sqlite3-doc

SQLiteでテーブルを作成する

OpenOffice.orgからSQLiteに接続するためには、ファイルがないといけない。SQLiteでは、テーブルを最低1つは作らないとファイルが作成されないので、適当なテーブルを作っておく。

$ sqlite3 test.db
SQLite version 3.2.1
Enter ".help" for instructions
sqlite> CREATE TABLE foo (
   ...> ID integer primary key,
   ...> NAMAE text,
   ...> FURIGANA text );
sqlite>

SQLite用のSDBCドライバ

Linux用のドライバが開発されている。

  • 情報源
Linux SQLite driver - alpha version
http://dba.openoffice.org/drivers/sqlite/
  • SDBCドライバの登録
    • OpenOffice.org1.1.xの場合
      1. OpenOffice.orgをクイック起動も含め終了
      2. sqlite-sdbc-$(VERSION).zipをOpenOffice1.1.x/user/uno_packagesフォルダへコピー(ネットワークインストールの場合は、管理者権限でOpenOffice1.1.x/share/uno_packagesへ)
      3. OpenOffice1.1.x/program内のpkgchkを実行する(ネットワークインストールの場合は、管理者権限で'pkgchk --shared')
      4. OpenOffice.orgの「データソースの管理」ダイアログボックスの「データベースの種類」欄で「sqlite」の登録を確認
  • OpenOffice.org2.0の場合
    1. OpenOffice.orgのツールメニューから[パッケージマネージャ]を選択
    2. パッケージマネージャの[追加]ボタンをクリックして、ドライバファイルを選択
    3. 下記画面のエラーが表示され正常に登録できない

      #ref(): File not found: "sqlite-pkg-error.png" at page "OpenOffice.org/Base/DB"

  • SQLiteをデータソースへ登録
    • OpenOffice.org1.1.xの場合
      1. OpenOffice.orgのツールメニューから[データソース]を選択
      2. データソースの管理画面で[新しいデータソース]をクリック
      3. 全般タブでデータソースの種類欄で「sqlite3」を選択
      4. データソースURL欄に「sdbc:sqlite3:sqlite_database_filename」を入力し、[適用]ボタンをクリック
      5. テーブルタブを開いて既存のテーブルが確認できれば登録OK

更新履歴

  • OpenOffice.orgページから分離 -- M.Kamataki 2005-06-20 (月) 22:19:13
  • PostgreSQLのODBC、JDBCドライバを使った登録方法を追加 -- M.Kamataki 2005-07-12 (火) 17:20:47
  • FirebirdのODBC、JDBCドライバを使った登録方法を追加 -- M.Kamataki 2005-07-15 (金) 21:29:35
  • OpenOffice.org上のデータベースでハイパーリンクを扱う試みを追加 -- M.Kamataki 2005-07-21 (木) 17:13:41
  • SQLiteに関する情報を追加 -- M.Kamataki 2005-08-14 (日) 22:01:20
  • LinuxのODBC環境、PostgreSQLのLinux対応など追加 -- M.Kamataki 2005-08-15 (月) 23:50:31
  • FirebirdのLinux対応状況を追加 -- M.Kamataki 2005-08-18 (木) 11:35:55
  • HSQLDBの最適化について追加 -- M.Kamataki 2006-04-09 (日) 16:30:55
  • OpenOffice.org/Base から分離 -- M.Kamataki 2006-12-13 (水) 15:25:45

ご意見・ご質問


トップ   編集 凍結解除 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-09-11 (土) 18:44:51 (1470d)