FirebirdとOOo(OpenOffice.org)
アーティクルID:14
最終更新日:2003/6/12
編集者:三浦しゅう(ウェブ担当)
ML投稿者:巳鳴(Shu Minari)さん、加藤大受さん、木村さん、牧野行男さん、宮副 英治さん
参考・引用記事:OOo+Firebird、Re: OOo+Firebird、Re: OOo+Firebird、Re: OOo+Firebird、Re: OOo+Firebird、Re: OOo+Firebird、OOo+firebird agein、Re: OOo+firebird agein、Re: OOo+firebird agein、Re: OOo+firebird agein、Re: OOo+firebird agein
テスト環境:
・win2000
・firebird1.0.3
・OpenOffice.org1.0.3/1.1beta2
ODBCドライバ:
1)firebird ODBC driver
http://www.twise.co.jp/download_m.html
2)Open Firebird ODBC
http://www.xtgsystems.com/linux/ofbodbc/about.php
3)IBPhoenix Open Source ODBC Driver
http://www.ibphoenix.com/
現象:
・3)のドライバー以外では正常動作しません。
再現手順:
・firebirdをインストールします
・IBConsoleでデーターベースの作成/ユーザーの登録、(英語文字列の)テーブルを作成します。
※ここまでの動作は正常に行われていることを確認しました。
・上記1)のODBCドライバ経由でOOoからテーブルを作成します。
※OOoの両バージョンの場合でエラーが発生し、テーブルが作成できません。
・上記2)のODBCドライバ経由でOOoから、すでに登録されているレコードを回覧時にテーブル名の後ろに[・・・・]が多量につきます。また、テーブルのプライマリーキーを設定しようとするとOOo1.0.3だとOOoがクラッシュし、1.1betaだとエラーがおきて、設定できません。
・上記3)のODBCドライバであれば、何の問題も無く動作します。
報告:IBPhoenix社のODBCドライバーでないと(2003/6/7時点では)OOoでは相性がよくないと思われます。
備考:OOoではJay-Bird経由での接続も出来るらしく、
下記のアーティクルで、実験しているようです。(フランス語)
http://www.a6cmo.org/article.php3?id_article=24
的外れかもしれませんが、
http://www.oooforum.org/forum/viewtopic.php?t=337
或いは下記のPDFを
http://www.hexeon.ca/pdf/OOoFBvp.pdf
一読すると良いかもしれません。
CHARACTER SET:OOoからの接続はShift_JISで。データベース自体はNONEです。
感想:OOoには、データベースソフトウェアがパッケージされていないので、
FireBirdを使用したい人もたくさんいるはず。追加実験の結果が判ったら追記します。
OpenOffice.org+firebird+ODBCでの追加報告:
OpenOffice.org1.1beta2のバージョンアップである1.1rcが出たので再度ODBCを用いて検証しました。
#1.1rcでバグが相当残っているので次に1.1rc2が出るとおもわれます。
#OOo日本ユーザー会にこのあたりの情報があります。
前回は、検証データに日本語文字列は利用していませんでしたが、今回は日本語で検証してみました。
今回行った環境は
・win2000
・firebird1.5rc3
・OpenOffice.org1.1rc
CHARCTER_SET=UNICODE_FSS
フィールド定義は、VARCHARを使用。
ODBCドライバ
1)Open Firebird ODBC
http://www.xtgsystems.com/linux/ofbodbc/about.php
2)IBPhoenix Open Source ODBC Driver
http://www.ibphoenix.com/
3)easysoft ODBC UNICODE driver trial
http://www.easysoft.com/products/9999/download.phtml?product=2201
4)Gemini InterBase ODBC Driver
http://www.ibdatabase.com/
5)firebird ODBC driver
http://www.twise.co.jp/download_m.html
#今回までに見つけたODBCドライバを全て試しましたが、他にもODBCドライバが存在したら教えていただければ幸いです。
1)Open Firebird ODBC
上記の1)のODBCドライバーを入れ、すでに登録されている物を回覧時にテーブル名の後ろに[・・・・]が多量につくまた、テーブルのプライマリーキーを設定しようとするとOOo1.0.3だとOOoがお隠れになり、1.1betaだとエラーがおき、設定できない。
登録されているテーブルの回覧時にテーブル名の後ろに[・・・・]が大量に付くのは相変わらずですが、前回は、OOoとの相性がとても悪く使用に耐えられなかったのですが、1.1RCバージョンになり、落ちることがほぼなくなりました。その上で、今回のODBCで一番まともに日本語のデータを扱えたのはこちらだけでした。
2)IBPhoenix Open Source ODBC Driver
2)は、前回同様全体的に何の問題も無く動作するというのは相変わらずではあるのですが、今回試してびっくりしたのがOOo経由ではコード変換が出来ないということでエラーになってしまい日本語文字列の登録が出来ないことを確認しました。
3)easysoft ODBC UNICODE driver trial
3)では、テーブルの作成はNG
存在するテーブルへの日本語文字列の登録は出来る物の全ての文字が[・もしくは/]となる。
当方、UNICODE_FSSでの日本語文字列取扱について試行錯誤した折りに、Easysoft社のドライバについては、UNICODE版でない標準版の方がXTGのOpen Firebird ODBCに近い動作を示していました。
早速試してみました。あいも変わらずテーブルの作成はNGでしたがテーブルの表示/データ入力では標準版では、XTG ODBCに近い動作しますね。
#これは具合がなかなか良いです:-)
検証方法が異なるのでどのような結果になるか不明ですが、もしお時間があるようでしたら、合わせてご確認頂けると、私には大変参考になります。蛇足ですが、JayBirdと、各社ODBCドライバ間での、UNICODE_FSS日本語文字列の互換性につきましても、OpenOfficeでの不具合情報等あれば助かります。具体的には、XTGとJayBird間で、Firebirdを介したUNICODE_FSS日本語文字列の受渡しに関するテストで、こちらでは、文字化けを確認しています。なお、Gemini/EasySoftのUNICODE版とJayBird間では正常動作を確認しています。
jaybirdはぜんざいのところ動作させられてないのでその部分はなんともいえないのですが、私の環境でのOOoでのテストでは、Gemini/EasySoftのUNICODE版間での互換性は認められなかったです。
[日本語]という日本語文字列を使用してみたのですが
geminiで入力した日本語文字列は、
× IBPhoenix ODBC/easysoft unicodeでは[・・・]という表示で
× XTG/easysoft 標準版では [譌・譛ャ隱]という表示
△ geminiの場合は、[日本・]という表示
easysoft unicode版で入力した日本語文字列は、
× IBPhoenix ODBC/easysoft unicode版では、[・.・]という表示
× gemini ODBCでは、[・・}・・]という表示
○ XTG/easysoft 標準版では[日本語]という表示
XTG/easysoft 通常版で入力した日本語文字列は、
× gemini ODBCでは、[・・}・・]という表示
× IBPhoenix ODBC/easysoft unicodeでは[・.・]という表示
○ XTG/easysoft 標準版では[日本語]という表示
※ twise ODBCドライバを除く
※ IBPhoenix ODBCは、先のメールの通り日本語文字列の入力自体不可
という結果でした。
4)Gemini InterBase ODBC Driver
4)では、テーブルの作成はNG存在するテーブルへの日本語文字列の登録は出来る物の[日本語です。]という単語を入れると最後の二つの文字が「・」となり表示されず。
5)firebird ODBC driver
5)では、テーブルの作成NG存在するテーブルもでてこないので何も出来ない。
以上により英語であれば、IBPhoenix Open Source ODBC Driver が一番最良であり日本語では、現状としては、Open Firebird ODBCを使用するしかない。というところでした。
JDBCでの接続も試みてはいるのですが如何せん美味く行ってないので美味くいきましたら又ご報告いたします。