Forums: Open Discussion (Thread #10084)

バージョン0.2 (2006-02-02 23:11 by shimakazuro #19594)

バージョン0.2をリリースしました

RE: バージョン0.2(バグ) (2006-02-06 15:24 by skimura #19669)

ColumnClassNameがjava.io.Readerであるカラム表示がおかしいです。
Reply to #19594

RE: バージョン0.2(バグ) (2006-02-07 01:01 by shimakazuro #19693)

java.io.Readerに対応するデータ型に対応していないからだと思います。
対応していないデータ型は toString()の値が表示されるだけなので、java.io.Reader@123abcd みたいな表示になっているかもしれません。

java.io.Readerに対応するSQLデータ型を勉強不足で知らないのですが、read()で全件読み、表示する機能を実装すれば可能だと思います。但し、以下の事を検討しないとちょっと厳しいです。

1)テーブルのセル表示はJTextFieldを使用しているので表示データ量が限られます。別ウィンドウ表示にすべきかもしれません
2)バイナリデータorテキストデータを、画面から指示する必要があるかも
3)データの更新のユーザインタフェースはどうしよう

とりあえず調べてみますので、DBMS名とデータ型を教えて頂けないでしょうか?
Reply to #19669

RE: バージョン0.2(バグ) (2006-02-07 02:30 by skimura #19695)

DBはMaxDBで、型はLONGです。

とりあえず、バイナリはいらないのでテキストが欲しいです。
Reply to #19693

RE: バージョン0.2(バグ) (2006-02-07 14:25 by shimakazuro #19709)

調べてみました。データ型LONGをgetObjectすると、
ColumnClassName:java.io.Reader
ColumnType:Types.LONGVARCHAR
が返るようです。JDBCドライバソースを軽く覗いただけなので想像です。(java.io.Readerでおかしい、という事とも合ってる気がします)
この仮定が間違っていると今回の対応は失敗(笑)。

期待していたのは
ColumnClassName:java.lang.String
ColumnType:Types.LONGVARCHAR
又は
ColumnClassName:java.sql.Clob
ColumnType:Types.CLOB
です。どうやらCLOBとして扱えば良さそうです(toStringでも良いかもしれません)

対応)
修正前『ColumnType:Types.CLOB の時getClobで取得』
修正後『ColumnType:Types.CLOB or ColumnClassName:java.io.Reader の時getClobで取得』
としてみました。MaxDBのインストールから始める必要があり、残念ながら動作確認はしていません。

修正はバージョン0.3.1としてリリースしました。
基本機能の課題なのですが、セルをJTextFieldで表示しているので、大量データは厳しいかもしれません。
別ウィンドウで表示する機能を、そのうち実装しようと思っています。
Reply to #19695

RE: バージョン0.2(バグ) (2006-02-07 18:16 by skimura #19712)

V0.3.1を動かしたところ大丈夫でした。
Reply to #19709