DBViewer Plugin for Eclipse とは

DBViewer Plugin for Eclipse(以下DBViewer)は、Eclipse(統合開発環境)を拡張するためプラグインです。
Eclipseに「データベース・フロントエンド」機能を提供します。(JDBCドライバーを使用しています)
DBAの方よりも開発者(Developer)の方をターゲットに機能を提供しています。
※Microsoft AccessやExcelには接続できません




ラベル DBViewer の投稿を表示しています。 すべての投稿を表示
ラベル DBViewer の投稿を表示しています。 すべての投稿を表示

2010年3月10日水曜日

DBViewer Early Release 1.2.0.V20100310

今までは、以下のデータベースだけ
テーブル編集エディターのページャ機能が有効になっていました。
  ・H2
  ・HSQLDB(PKがあるテーブルのみ)
  ・MySQL
  ・Oracle
  ・PostgreSQL

しかし、他のデータベース(DB2など)や、
クエリの実行結果に対してもページャ機能を使いたい!!

という要望がありましたので、実装してみました。
※海外の方からは、ページャのボタンが有効にならない。という障害報告でしたが・・・

早速使ってみたいかたは、
DBViewer Early Release 1.2.0.V20100310
をダウンロードしてください。

※最新版は、UpdateSiteではなく、SourceFourge.jpからダウンロードしてください。

http://sourceforge.jp/projects/dbviewer/releases/

2010年1月29日金曜日

SQLServerのJDBCDriverは、

DBViewerでSQLServerに接続した場合

nvarcharが、「不明な型(-9)」になるという不具合が
掲示板(SourceForge.jp)に報告されていましたが、

調べていただいた結果、SQLServerのJDBCDriverに不具合がありそうだと
いうことが分かりました。

sqljdbc.jar ・・・正常
sqljdbc2.jar・・・未確認
sqljdbc4.jar・・・異常(不明な型(-9))

となりました。

JDBCDriverが最新であれば「いい」とは限らないですね。。。

2009年12月8日火曜日

SQLiteのJDBCDriverって・・・

SQLiteのJDBCDriverってちょっと変だと思います。
まだ、詳しくみてはいないのですが、

1.NULLの場合、intやcharであっても、java.sql.Types = 0 になってしまう。
NULL判定は、java.sql.Typesではなく、java.sql.ResultSet#wasNull()を使うのが
一般的なのに・・・

2.カラムの属性をDataBaseMetaDataから取得する時、
varcharの場合だけ、"varchar(256)" と取得される。
サイズ情報は別途取得しているので、本来であれば、"varchar"とだけ返してくれれば
よいのに・・・・

ともあれ、SQLite対応として、上記2つの個別実装を行っています。(未公開機能)

2008年4月23日水曜日

テーブル編集エディターのページャ実装2

Oracleのページャ実装が完了したので、他のデータベースへの対応を行った。

追加対応したのは、以下の4つですが、それぞれ方言がありました。

MySQL
SEECT * FROM :table LIMIT :offset, :limit

PostgreSQL
SEECT * FROM :table LIMIT :offset OFFSET :limit

H2
SEECT * FROM :table LIMIT :offset OFFSET :limit
※PostgreSQLと同じ

HSQLDB
SEECT * FROM :table ORDERBY :col LIMIT :offset OFFSET :limit
※HSQLDBでは、Limit句を使うには、ORDER Byによるソートが必要

Derbyには、Limit相当の機能は無いようですね。
他のDBでページャのご要望がありましたら、構文を教えていただければ
対応します^^w

2008年4月18日金曜日

登録済みのJDBC Driverから選択できる機能

またまた、新機能開発中です。

今日は、「既に登録しているJDBC Driverから簡単に選択できるダイアログ」を追加しました。

データベースの新規登録時や、他の人からもらった「データベース定義」をインポートする時に
JDBC Driverのパスを選択する作業が、面倒だったのですが、
これで、かなり楽になると思います。




2008年4月16日水曜日

OracleのROW_NUMBERという分析関数をはじめて知りました。

今日で、DBViewerが「NullpointerExceptionのエラーダイアログを表示する」
という障害報告をもらった。

見てみると、SQLアウトラインを出すためのSQL解析でエラーになっているので、
対象のSQLをもらってみたら、

こんな構文が書けるんだ・・・・とはじめて知りました^^(DBはOracleです)
SELECT
NO
,NAME
FROM
(
SELECT
NO
,NAME
,ROW_NUMBER() OVER(
ORDER BY
NO
) RNUM
FROM
ROWNUM_TEST
)
WHERE
RNUM BETWEEN 5 AND 10



ROW_NUMBER関数については、以下のサイトで詳しく記載してありました。
http://www.shift-the-oracle.com/sql/functions/row_number-practice.html

そいういえば、昔、階層問合せ?(connect by priorを使うやつ)を使ったことを思い出しました。

まだまだ、想定していない構文があります・・・

ちなみに、上のSQLは、DBViewer SQL Formatterで整形したものです。
# 微妙・・・・w

備忘録
・後輩に、SQL Formatterの修正依頼すること

関数の追加:row_number
キーワードの追加:partition by

※この関数はOracleだけではなく、SQLServerにもあるみたい。

2008年4月14日月曜日

テーブル編集エディターにページャを実装中


テーブル編集エディターにページャを実装に挑戦しています。


検索結果をメモリ上に保持するのではなく、
SELECT文にoffsetとlimitと指定して 必要なデータのみ取得するように考えています。

しかし、Oracleの場合は、offset/limit という構文は存在せず、

rownum を使ってSELECT文を発行する必要があります。

しかも、副問合せを使って、並び順を保持しておかないと、別データがヒットします^^;
ページャの実装には、データベース毎のSELECT文を用意する必要があります。

まずは、Oracleから実装中です。
テーブル編集エディターのツールバーも、ちょっと改良しています。

2008年4月11日金曜日

DBViewer Plugin のブログです。

こんばんわ、ZIGENです。

自身が開発しているオープンソースのEclipseプラグイン「DBViewerPlugin」
が、公開してもうすぐ3年になります。

振り返ると、、、

開発当初は、DBViewerという名前だけに、データの参照とSQLの発行ができる
ぐらいの簡単なものでしたが、今ではかなり便利なツールになりました。

2008年度は、更に、DBViewerをブラッシュアップして、
メジャーなプラグインにしていきたいと思います。