スタブ用のエクセルを販売します
ビジネスロジックはストアドプロシージャに入れるべきと書いてきましたが、現在のバージョンでもOracleのストアドプロシージャ(ファンクション)は非常に書きにくいです。
SELECT系のストアドプロシージャ(ファンクション)の書きやすさは
SQLServerr > DB2 > PostgreSQL > Oracle
となります。
いずれにしても、私の考える開発を行うにはスタブを作るのは必須です。これはエクセルのマクロで作れるのですが、弊社で使用しているマクロを販売することにしました。
図2 スタブ用エクセルマクロ
図2のように
1.パラメータと戻り値の型と名前を入れる。
2.ダミーデータを設定する。
3.更新用のシートにパラメータと戻り値の型と名前を入れる。
4.接続情報を設定シートに入力する。
5.出力ボタンをクリックする。
とごく簡単な操作で、以下のようなスクリプトが出力されます。ダミーデータはスクリプトファイルにしないで、ADO経由で直接書き換えることも可能です。
現在、使用許諾書、並びに、ログの出力を含めるか検討中です。
「ログの出力を含めるか」を検討中というのは、データベースに対するアクセスをストアドプロシージャ(ファンクション)に一元化することにより、もう一つ、大きなメリットがあるためです。
それは、「完璧な監査証跡」が取れるということです。
例えば、SELECT系のストアドプロシージャ(ファンクション)の呼び出しは以下のようになりますが、
Oracle
SELECT * FROM TABLE(ファンクション(?, ?, ?, ?))
SQLServer
EXEC プロシージャ ?, ?, ?, ?
これを、以下のようにバインド変数をリテラルへの変換を行った後、ログテーブルに保存します。
Oracle
SELECT * FROM TABLE(ファンクション(
NULL, TO_DATE('20100608','YYYYMMDD'), NULL, NULL))
SQLServer
EXEC プロシージャ NULL, CONVERT(DATETIME, '20100608', 112), NULL, NULL
このログは監査証跡だけではなく、ユーザインターフェース側がどんなテストを行ったか再現することも可能になりますし(テストファーストとは言い難いけれど)、トラブルの解析にも非常に役に立ちます。
ただ、ログである以上、セッションIDやユーザID、IPアドレスなども必要になるでしょう。それをどんな形のテーブルに保存するか、パラメータ名なども会社毎にポリシーがあるし、ログテーブルの構造も私が決めるわけにはいきません。
そのため、含めたとしてもサンプルとしてしか使えません。とにかく、少し検討いたしております。
販売価格について
ソース公開で会社単位へのライセンスとなります。
参考価格はすべて税込みで
Oracle版
105,000円
SQLServer版
105,000円
DB2版(要望があれば)
105,000円
PostgreSQL版(要望があれば)
105,000円
2本パック
157,500円
3本パック
210,000円
4本パック
262,500円
となります。
数百人以上の会社を想定しているので、中小企業の方はメールにてご相談ください。
個人で勉強したいという方には95%引きで販売いたします。こちらもメールにてご相談ください。
info@g1sys.co.jp