鎌滝です。

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]

メールによる返信