Re: [ja-discuss] Baseのodbファ イルを別のフォルダにコピーするとテー ブルが表示されない
鎌滝さん とっても、亀レスで、ごめんなさいです。(全文引用、ご容赦を) 明日は、↓これのバグ登録へ取り組みます。 Tora Masahisa Kamataki wrote: 鎌滝です。 Toraさん、コメントありがとうございます。 At Tue, 13 Sep 2005 13:58:17 +0900, Takamichi Akiyama wrote: この不具合って、現状、開発側へ伝わっていましたっけ。 いえ、まだこの問題を、「仕様」なのか「不具合」なのか見極めたいと思って いるところです。不具合なら、Issue登録したいと思ってます。 ところで、「コピー」するとは、どのような手順でしたっけ。 前のコメントわかりにくかったですね。自分なりにまとめてみました。 o 現在の仕様 C:\データベースなど、2バイト文字のあるディレクトリにHSQLDB形式のBaseファ イルを作成します。仮にファイル名をhsql.odbとすると、テーブルを作成する と、内部ファイルには次のようにテーブル関係のファイルが作成されます。 database/データベース/+hsql.properties database/データベース/+hsql.script なお、「データベース」部分はZIPアーカイブソフトでは文字化けして読めま せん(UTF対応のターミナルでunzipコマンドで表示してみましたがやはり文字 化けしています。ただ、これはフォントのせいかも)。 この状態なら、問題なくテーブルを表示可能です。 なお、2バイト文字を含まないディレクトリに置いたBaseファイルでテーブル を作成した時の内部ファイルは、次のようになります。 database/+properties database/+script o 文字化けするケース 2バイト文字を含まないディレクトリに置いたあったBaseファイルを上記のC:\ データベース ディレクトリにコピーした後、テーブルを表示しようとすると、 内部ファイルが次のように書き変わります。 database/+properties database/+script database/データベース/+hsql.properties database/データベース/+hsql.script そして、テーブルが作成されていない +hsql.script のほうを読もうとするの で、テーブルペインにはテーブルが表示されないというわけです。 これは、調べてみると逆のケース、C:\データベースから別の2バイト文字を含 まないディレクトリにコピーしたケースでも、表示できなくなります。今度は、 +script を読もうとするからだと想像しています。 つまり、現在の仕様では、2バイト文字のディレクトリ名をパスに含む場合、 Baseは必ず、内部ファイルのdatabaseディレクトリ以下に2バイト文字らしい ディレクトリを作り、その下にテーブル定義などのファイルを置くのです。 この仕様を改善しない限り、HSQLDB形式のodbファイルを2バイト文字のディレ クトリ名をパスに含む場合は、そこから他のディレクトリにコピーしてはいけ ませんし、他のディレクトリからコピーしてはいけないことになります。 なお、この現象はLinuxでも同じです。どうぞ、よろしくお願いします。 p.s.追試すると、C:\データベースから違う2バイト文字のディレクトリにコピー してみたら、そちらでも表示されなくなりました。今度は、 database/+hsql.properties database/+hsql.script という新しいファイルを作られました。上記の「Baseは必ず、内部ファイルの databaseディレクトリ以下に」うんぬんは必ずしも当てはまらないですね。う〜 む。 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: [ja-discuss] Baseのodbファ イルを別のフォルダにコピーするとテー ブルが表示されない
鎌滝さん この不具合って、現状、開発側へ伝わっていましたっけ。 ところで、「コピー」するとは、どのような手順でしたっけ。 すみません、繰り返しになってしまうとは思いますが、お願いいたします。 Tora Masahisa Kamataki wrote: 鎌滝です。 [EMAIL PROTECTED] が、Baseのodbファイルをコピーする際、コピー先がファイルパスに2バイト文 字を含むフォルダだとテーブルが表示されない現象が起きています。 実は某所で指摘されたことですが、 - はじめからファイルパスに2バイト文字が含まれるフォルダに作成した場合 は問題ない。 - 表示されなくなったodbファイルをファイルパスに2バイト文字が含まれない フォルダにコピーしなおすと、また表示されるようになる。 こともわかっています。さらに、odbファイルをチェックしてみると原因らし きものがわかりました。 http://openoffice.s16.xrea.com:8080/pukiwiki/pukiwiki.php?plugin=attachopenfile=base_path_error1.pngrefer=%5B%5BOOo2.0%A5%D0%A5%B0%BE%F0%CA%F3%5D%5D はコピー前のodbファイルの構成、 http://openoffice.s16.xrea.com:8080/pukiwiki/pukiwiki.php?plugin=attachopenfile=base_path_error3.pngrefer=%5B%5BOOo2.0%A5%D0%A5%B0%BE%F0%CA%F3%5D%5D はコピー後のodbファイルの構成です。 後者にdatabaseディレクトリの下に文字化けしたディレクトリが増えています。 ただし、ディレクトリ名が文字化けしているのがテーブルを表示できない理由 ではありません。最初から、2バイト文字を含むフォルダに作成されたodbファ イルの構成は、後者と同じでdatabaseディレクトリの下に文字化けしたディレ クトリが存在しますが、テーブルは表示されます。また、おそらくUTF-8を読 める環境なら文字化けしないでしょうし。 次に、コピー前とコピー後のMETA-INF/manifest.xmlファイルを比べてみると、 http://openoffice.s16.xrea.com:8080/pukiwiki/pukiwiki.php?plugin=attachopenfile=base_path_error2.pngrefer=%5B%5BOOo2.0%A5%D0%A5%B0%BE%F0%CA%F3%5D%5D が前者、 http://openoffice.s16.xrea.com:8080/pukiwiki/pukiwiki.php?plugin=attachopenfile=base_path_error4.pngrefer=%5B%5BOOo2.0%A5%D0%A5%B0%BE%F0%CA%F3%5D%5D が後者なのですが、META-INF/manifest.xmlファイルでも文字化けしたディレ クトリが追加されています。 さて、HSQLDBを組み込みで使用したodbファイルは、scriptファイルにテーブ ルの定義を格納します。コピー前のscriptファイルには、 http://openoffice.s16.xrea.com:8080/pukiwiki/pukiwiki.php?plugin=attachopenfile=scriptrefer=%5B%5BOOo2.0%A5%D0%A5%B0%BE%F0%CA%F3%5D%5D のように、テーブルの定義が含まれています。コピー後のodbファイルでは、 META-INF/manifest.xmlファイルが書き換えられたため、test1.scriptが対象 となるようです(test1というのは、odbファイルの名前部分)。しかし、 http://openoffice.s16.xrea.com:8080/pukiwiki/pukiwiki.php?plugin=attachopenfile=test1.scriptrefer=%5B%5BOOo2.0%A5%D0%A5%B0%BE%F0%CA%F3%5D%5D のように、テーブル定義が欠落しています。これが、この問題の原因だと思わ れます。 ただし、最初から2バイト文字を含むファイルパスのフォルダに作成したodbファ イルの場合は、このtest1.scriptが作成され、テーブル定義も含まれているた め、テーブルの表示に問題は出ません。 つまり、2バイト文字を含むファイルパスへの対応は考慮されているものの、 そこにコピーされた場合までは対応されていないようにも思えますし、そもそ も2バイト文字を含むファイルパスへの対応が必要なのかどうか、このあたり がよくわかりません。 Issueに登録するにあたって、この問題について議論が必要な気がするのです。 ご意見お願いします。 ;; わかりにくかったら、ごめんさい。ご質問もどうぞ。 - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]