- - PR -
DataTableで先頭にカラムを追加したい
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-08-10 22:54
昨日お休みして PC の前に座りませんでした。遅くなってすみません。
なんとなく、オブジェクト指向っぽくない設計になっているのかな、と。全容がわからないのでおおよその見当ですが、ポリモーフィズムで特化とか、インターフェイスで呼び出しを共通化など、処理内容(コード)は個々のテーブルで分けなければならないのを、コードを共通化したことが問題、という感じですね。 回答の傾向を見ていると、問題(質問事項)の解決よりも、問題の本質(質問事項の元になっている問題)の解決を図ろうとしている回答が多いようです。そうすると、 > 何よりも大前提となるのがとにかく時間が無いということでした。 > 設計を見直せというお叱りだけは今回は勘弁してください。。 が、満足できないかな、と。 ただ、[投稿日時: 2005-08-08 12:38]Java僧さんの提案は一考の余地があるかと思うのですが。。。 [投稿日時: 2005-08-08 15:40]等で、再々『渡すものはWHERE句のみ』と上がっていますが、テーブル名や、テーブルの構成を変更する余地は全くないのでしょうか。ビューではなく、テーブルにすでにダミー列を入れてしまっておけば、、、まぁ、共通関数といわれているところで、列名もハードコーディングされているなら、テーブルの構成を変更してもダメなのですが。 顧客要望としてテーブルに格納しなければならないデータが増えることは予想されるので、ハードコーディングされているなら、次回は、柔軟な設計が必要かと思います。 | ||||||||
|
投稿日時: 2005-08-10 23:32
DataTableを継承したDataTableのラッパークラスを作って、
カラム追加のメソッドとデータ操作のメソッドの振る舞いを 変えてやればいいような気がしますが。 ・カラム追加を行ったら、ラッパークラスで保持する。 ・データのアクセスメソッドのインデックスに追加したカラムの数を足して、 ラップしたオブジェクトに委譲するようにする。 って感じの振る舞いにしてやればいいような気がします。 (.netは詳しくないので、継承できないのであればゴメンなさい。) | ||||||||
|
投稿日時: 2005-08-12 21:50
Jittaさん、かつのりさんお返事ありがとうございます。
また、返答遅れてしまいもうしわけありません。
すでに恥の上塗りになってしまっていますが、 推測どおり列名やテーブルなどはすべて関数内でハードコーディングされております。 また、テーブルの構成に関しましては、 すでに何本ものシステムがのっかているマスタを参照しているため、 基本的には不可能でした。やるならばビューだったかもしれません。
ラッパークラス・・・ すいません勉強不足です。 |
«前のページへ
1|2|3