Date: Wed, 25 Feb 2004 14:51:43 +0900
From: "H.Mizuguchi" <who@example.co.jp>
水口です。
> レポート印刷では、レコードセットを修正することはありませんので、このような
> プログラムも許されますが、フォームでは、更新が必要になるので、このような
> 例は許されません。
このスレッドではフォームではなくレポートについて論じていました。いきなり
フォームについて話を振られても困ります。それに、更新が必要なフォームでの
RecordSourceが一時テーブルになりうる状況が想像できません。
> 誤解を与えるようなプログラムなので、私であれば、レポート印刷の場合でも、
> ストアドプロシージャを呼び出す前に一時テーブルを作るようにします。
でも、同じレポートファイルを並行して印刷する場合、そういうやり方だと一時
テーブルが重複するんじゃないですか?ストアドプロシージャ内部で一時テーブ
ルを作成しておけば、そういう状況でも困ることはありません。
そもそも、一時テーブルというのは、構造化プログラミングにおける外部変数の
ようなものだと認識しています。いわば必要悪です。変数のスコープをできるだ
け狭くすることは、予防的プログラミングという観点からも望ましいはずです。
ついでに言えば、堀川さんのアプローチだと、フォームやレポートが一時テーブ
ルという外部変数を介してストアドプロシージャと密結合してしまいます。何ら
かの理由で一時テーブルの名前を変更しなければならなくなったとき、ストアド
プロシージャの内部も訂正しなければなりません。例題のプログラムであれば、
一時テーブルの名前が外部に影響を与えることはありません。フォームやレポー
トとストアドプロシージャの結合は粗であり、一般的に結合がゆるければゆるい
ほど、変更に強いとされています。なので、わたしは「誤解を与えるようなプロ
グラム」だとは思いません。
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|