■
データベースへSQLを発行する際には、SQLCommand(だっけ?)クラスを利用するわけだが、その際のSQLは、パラメータクエリにしている。
こういうクエリが、パラメータクエリ↓
select * from master where CD = @CD and Num = @Num
パラメータが埋め込みになるので再利用できるし、誤ったパラメータの場合は実行エラーになるので、便利だ。
これは、SQLParameterクラスを使って行うのだが、このパラメータクエリに利用するParameterNameプロパティや、SizeプロパティをConst宣言したくなる。
その時に、どこに書くのかで悩んだ。実際にマスタ系などは、1テーブルに対して更新処理を行う必要があったりするので、
テーブル 対 クラス
の関係でつくっている。
更新メソッド、削除メソッドなんかは、インターフェイスで統一した窓口を利用することにして、というわけだが、そうなると各クラスにConst宣言してしまうと、他で同一のパラメータを利用するときに、またその宣言をかかなくてはならない。
しかし、じゃあ再利用性が低いということでまとめてしまうと、クラスとしてまとめるのか、モジュールでまとめるのか、という点も出てくる。
テーブルへのアクセス処理は、個別のテーブルクラス内で汎用DBアクセスクラスのインスタンスをから処理を呼び出すようにしているため、各テーブルクラスでは、アクセスに必要なパラメータなどをセットして、Insert用メソッドを呼び出す処理やデータの事前チェックなどを行っているだけだ。
モジュールにまとめると、モジュールの見通しの悪さという点から、利用は避けたい。しかし、クラスにまとめるのは、「なぜクラスにする必要があるのか?」という点がある。
はて...どうするのがイイんだろうね。