OpenOffice.orgについてのメモ。
HSQLDB形式データベースの最適化 †
データベースは、運用していくうちに肥大化していく。時々最適化してあげるとよい。HSQLDBには、最適化用のSQLコマンドが用意されている。それはHSQLDBを埋め込んだBaseファイルでも有効だ。具体的には次の手順を実行すればよい。(CHECKPOINT DEFRAGだけでよいかも)
- Baseの[ツール]−[SQL]で「SQLステートメントの実行」を表示
- 実行コマンド欄に次のSQL文を入力し[実行]ボタンをクリック
CHECKPOINT DEFRAG
- 同じく実行コマンド欄に次のSQL文を入力し[実行]ボタンをクリック
SHUTDOWN COMPACT
- いったん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環境設定 †
MySQL †
ODBCドライバ †
- MySQLの活用方法その2(OOoとの連係)
- http://www.freeml.com/message/knoppix@freeml.com/2191
- Linuxでの設定
- ODBCドライバのインストール
- /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が読めない」「コンポーネントネームが認識できない」旨のエラーダイアログが表示される。
- 「ODBC Data Source Administrator」ダイアログの「User DNS」タブで[Add]ボタンをクリック
- 「Select a Driver」ダイアログで[OK]ボタンをクリック
- Name欄に「MySQL」、Server欄に「localhost」、Database欄に「test」、Port欄に「3306」を入力し、[Save and Exit]ボタンをクリック
- 「User DNS」タブに登録されているのを確認し、[OK]ボタンをクリック
- Windows/LinuxマシンのOpenOffice.orgの設定(2.0)
- Baseを起動すると「データベースウィザード」ダイアログが表示される
- ステップ1で「既存のデータベースに接続」をチェックし、「ODBC」を選択
- ステップ2で「ブラウズ」をクリックし、登録したODBCデータソース名を選ぶ
- ステップ3でODBCデータソースにユーザー名、パスワードを登録しなかった場合は、ここでユーザー名を指定し、Password requiredをチェック、「Test Connection」ボタンでエラーにならないか確認
- ステップ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内のマシンにサービスを提供する
- スタートメニューから「PostgreSQL 8.0」−「構成ファイル」−「pg_hba.confの編集」を選択
- 「バックエンドアクセス認証エディッタ」ダイアログの最下行□部分をダブルクリックする
- 「クライアントアクセス認証」ダイアログで、可能欄をチェック、データ型欄に「host」、データベース欄に「all」、ユーザー欄に「all」、IPアドレス欄に許可するホストのIPアドレス、方法欄に「md5」を入力し、[OK]ボタンをクリック
- 設定を保存し、「バックエンドアクセス認証エディッタ」ダイアログを終了
- 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への登録手順
- OpenOffice.orgをクイック起動も含め終了
- postgresql-sdbc-$(VERSION).zipをOpenOffice1.1.x/user/uno_packagesフォルダへコピー(ネットワークインストールの場合は、管理者権限でOpenOffice1.1.x/share/uno_packagesへ)
- OpenOffice1.1.x/program内のpkgchkを実行する(ネットワークインストールの場合は、管理者権限で'pkgchk --shared')
- 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)
- 「データソースの管理」ダイアログボックスで「新しいデータソース」をクリック
- 名前は任意の名称に、データベースの種類は「postgresql」、データソースURLは「sdbc:postgresql:dbname=knoppix」を指定
- 左から2番目のタブ(名称不明バグ?)を開き、ユーザー名に「knoppix」、文字コードセットに「日本語(EUC-JP)を指定し、「適用」ボタンをクリック
- テーブルタブを開き、エラーが表示されなければSDBCドライバでの接続は成功
- 「新しいテーブル作成」ボタンをクリックし、「テーブルデザイン」でフィールドを編集
- 保存時は、スキーマに「public」を選び保存(knoppixではエラーになる)
- リモート(Windows)接続のためのPostgreSQLの設定
ODBCドライバ †
- ODBCドライバのインストール
- /etc/odbc.ini /etc/odbcinst.iniの設定
- ODBCドライバの登録
- Debianの場合
- ODBCConfigを起動
- 「ODBC Data Source Administrator」ダイアログの「User DNS」タブで[Add]ボタンをクリック
- 「Select a Driver」ダイアログで[OK]ボタンをクリック
- Name欄に「PostgreSQL」、Server欄にPostgreSQLサーバのIPアドレス、Database欄に「db_name」、Port欄に「5431」を入力し、[Save and Exit]ボタンをクリック
- 「User DNS」タブに登録されているのを確認し、[OK]ボタンをクリック
- Windows/LinuxマシンのOpenOffice.orgの設定(2.0)
- Baseを起動すると「データベースウィザード」ダイアログが表示される
- ステップ1で「既存のデータベースに接続」をチェックし、「ODBC」を選択
- ステップ2で「ブラウズ」をクリックし、登録したODBCデータソース名を選ぶ
- ステップ3でODBCデータソースにユーザー名、パスワードを登録しなかった場合は、ここでユーザー名を指定し、Password requiredをチェック、「Test Connection」ボタンでエラーにならないか確認
- ステップ4で「完了」をクリックし、ファイル名を指定する
登録後、「編集」→「データベース」→「プロパティ」で「データベースプロパティ」ダイアログを開き、「追加設定」タブの文字セットをWindowsの場合は「日本語(Shit-JIS)」に、Linuxの場合は「日本語(EUC-JP)」に変更する必要がある。
JDBCドライバ †
- Windows/LinuxマシンのOpenOffice.orgの設定(2.0)
- Baseを起動すると「データベースウィザード」ダイアログが表示される
- ステップ1で「既存のデータベースに接続」をチェックし、「JDBC」を選択
- ステップ2でデータソースのURLに「jdbc:postgresql://192.168.1.XX:5432/da_name」、JDBCドライバクラスに「org.postgresql.Driver」を指定し、「テストクラス」ボタンでドライバの登録を確認
- ステップ3でユーザー名を指定し、Password requiredをチェック、「Test Connection」ボタンでエラーにならないか確認
- ステップ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ドライバのインストール
- /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)
- Baseを起動すると「データベースウィザード」ダイアログが表示される
- ステップ1で「既存のデータベースに接続」をチェックし、「ODBC」を選択
- ステップ2で「ブラウズ」をクリックし、登録したODBCデータソース名を選ぶ
- ステップ3は特に設定しない
- ステップ4で「完了」をクリックし、ファイル名を指定する
登録後、「編集」→「データベース」→「プロパティ」で「データベースプロパティ」ダイアログを開き、「追加設定」タブの文字セットを「日本語(Shit-JIS)」に変更する必要がある。
JDBCドライバ †
- 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)
- Baseを起動すると「データベースウィザード」ダイアログが表示される
- ステップ1で「既存のデータベースに接続」をチェックし、「JDBC」を選択
- ステップ2でデータソースのURLに「jdbc:firebirdsql://192.168.1.3:3050/c:\database\firebird\test.fdb」、JDBCドライバクラスに「org.firebirdsql.jdbc.FBDriver」を指定し、「テストクラス」ボタンでドライバの登録を確認
- ステップ3でユーザー名を指定し、Password requiredをチェック、「Test Connection」ボタンでエラーにならないか確認
- ステップ4で「完了」をクリックし、ファイル名を指定する
Baseからデータの登録、更新ができない問題がある。また、Linuxでは、「java.lang.IllegalArgumentException」エラーダイアログが表示され、テーブルが読めない。これは、Windows側のFirebirdデータベースの文字コードに原因があるかもしれない。文字コードをEUC-JPにしたデータベースを用意したところ、エラーなくテーブルが表示された。ただし、Linux側ではEUC-JPをSJISな環境で読んだような文字化け状態になる。そこで、EUC-JPなデータベースにSJISのテーブルを作成してみたところ、Linuxでも文字化けせず読めました。
Windows側でも、Baseでは問題ないものの、IBOConsoleではEUC-JPなデータベース上のSJISテーブルのデータが表示されない問題あり。
- テーブルにデータ入力できない
- テーブル名に小文字が含まれているとこの現象が起こる。すべて大文字のテーブルならデータ入力が可能だ。
- WindowsをサーバにしたFirebirdのテーブルでは、日本語のデータが文字化けする
- EUC-JPのデータベースを用意し、SJISのテーブルを作成すれば、Linux側で表示も入力も文字化けしない。
SQLite †
SQLiteのインストール †
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の場合
- OpenOffice.orgをクイック起動も含め終了
- sqlite-sdbc-$(VERSION).zipをOpenOffice1.1.x/user/uno_packagesフォルダへコピー(ネットワークインストールの場合は、管理者権限でOpenOffice1.1.x/share/uno_packagesへ)
- OpenOffice1.1.x/program内のpkgchkを実行する(ネットワークインストールの場合は、管理者権限で'pkgchk --shared')
- OpenOffice.orgの「データソースの管理」ダイアログボックスの「データベースの種類」欄で「sqlite」の登録を確認
- OpenOffice.org2.0の場合
- OpenOffice.orgのツールメニューから[パッケージマネージャ]を選択
- パッケージマネージャの[追加]ボタンをクリックして、ドライバファイルを選択
- 下記画面のエラーが表示され正常に登録できない
#ref(): File not found: "sqlite-pkg-error.png" at page "OpenOffice.org/Base/DB"
- SQLiteをデータソースへ登録
- OpenOffice.org1.1.xの場合
- OpenOffice.orgのツールメニューから[データソース]を選択
- データソースの管理画面で[新しいデータソース]をクリック
- 全般タブでデータソースの種類欄で「sqlite3」を選択
- データソースURL欄に「sdbc:sqlite3:sqlite_database_filename」を入力し、[適用]ボタンをクリック
- テーブルタブを開いて既存のテーブルが確認できれば登録OK
更新履歴 †
- OpenOffice.orgページから分離 -- M.Kamataki
- PostgreSQLのODBC、JDBCドライバを使った登録方法を追加 -- M.Kamataki
- FirebirdのODBC、JDBCドライバを使った登録方法を追加 -- M.Kamataki
- OpenOffice.org上のデータベースでハイパーリンクを扱う試みを追加 -- M.Kamataki
- SQLiteに関する情報を追加 -- M.Kamataki
- LinuxのODBC環境、PostgreSQLのLinux対応など追加 -- M.Kamataki
- FirebirdのLinux対応状況を追加 -- M.Kamataki
- HSQLDBの最適化について追加 -- M.Kamataki
- OpenOffice.org/Base から分離 -- M.Kamataki
ご意見・ご質問 †