428835 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

ZIGENのプラグイン開発 for Eclipse

ZIGENのプラグイン開発 for Eclipse

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2005.03.27
XML
DBViewerプラグインと言いながら、実は編集できるように
実装を考えているが、大きな問題にぶちあたってしまった。

テーブルの内容(データ)をエクセル風(TableViewer)に
表示させるのはそれほど難しくはない。

大きな問題とは、
「どうやって指定された"行"を正しく更新させるか?」である。

案1:CachedRowSetを使用する
 長所
 ・正確な行を更新することができる
 ・DBとの接続状態を維持する必要がない
 短所
 ・実装してみたが、正常に動作せず。
 ・ネットで調べてみたところ、MySQLおよびOracleとの相性?が悪いらしい。
 ・RDBの種類によって動作するものと動作しないものがありそう。
 ・JDBC2.0の機能

案2;ResultSetを使用する
 長所
 ・正確な行を更新することができる
 短所
 ・DBと接続状態を保持する必要がある(同時に開くとDBのコネクションが足りなくなる)

案3:プライマリーキーを使用する
 長所
 ・プライマリーキーがあるテーブルのみ正確に更新できる。
 短所
 ・プライマリーキーが無いと更新できない。
 
 「某DBプラグイン」を試してみると、
 プライマリーキーが無いテーブルを更新する場合は、すべての項目をキーにして
 更新処理を実行している。
 この場合、全く同じレコードが複数存在する場合、そのレコードがすべて更新されてしまう。
 
案4:ROWID(行を特定する識別子)を使用する
 長所
 ・正確な行を更新することができる
 ・DBとの接続状態を維持する必要がない
 短所
 ・Oracleでしか?サポートしていない
  (MySQLでは使用できない)


どの選択肢も、短所があり、それが機能制限となってしまうものである。
個人的には、案1のCachedRowSetを使った更新方法を選択したいのであるが、、、、

○Oracle限定のプラグインにする?
○プライマリーキーがあるテーブルの更新可能にする?
○編集画面(実際にはEditor)を開いている間、DB接続を維持する?
○もう少しCachedRowSetを検証してみる?

うーん頭が痛い;;

どなたか他にいい方法があれば、ぜひアドバイスをお願いしますー^^





お気に入りの記事を「いいね!」で応援しよう

Last updated  2005.03.27 18:15:45
コメント(1) | コメントを書く
[プラグイン障害・課題・制限] カテゴリの最新記事


■コメント

お名前
タイトル
メッセージ
画像認証
別の画像を表示
上の画像で表示されている数字を入力して下さい。


利用規約に同意してコメントを
※コメントに関するよくある質問は、こちらをご確認ください。


Re:テーブルのデータをエクセル風に編集できない?(03/27)   名前なし さん
ExcelでOracle,MySQLのデータを取得/更新するなら、ExcelDBToolをお勧めします。
データ取得、更新、削除することだけではなく、複数のSQLを実行して、結果を
一括Excelの各シートに出力することもできます。データ作成の機能を使って、
氏名、住所、電話など60種類以上のダミーデータも作成できます。
作成したデータを直接DBに登録して、シート名とテーブル名が一致すれば、
一括で複数テーブルのデータもExcelに取得できます。 (2013.12.06 16:30:59)

PR

Calendar

Comments

名前なし@ Re:テーブルのデータをエクセル風に編集できない?(03/27) ExcelでOracle,MySQLのデータを取得/更新…
ZIGEN@ Re:いつも使ってます!!(04/14) ヘタグラマさん こんにちは^^ コメ…
ヘタグラマ@ いつも使ってます!! いつも便利に使ってます。 もう手放せな…
★みゆきち★@ 性感エステってもったいないよね ムラムラってきたら性感エステに通ってた…
ZIGEN_M@ Re[2]:4000行はないけれど、(03/13) こんにちは、ZIGENです。 そ、そうです…

Category

Freepage List

Favorite Blog

松のページブログ 松-booleanさん

Profile

ZIGEN_M

ZIGEN_M


© Rakuten Group, Inc.