- PR -

SqlParameterに関数を追加する方法は?

投稿者投稿内容
ざこ
会議室デビュー日: 2006/10/18
投稿数: 3
投稿日時: 2006-10-18 10:41
現在諸事情によりSQLを発行する際、SqlParameterを使わなければならない状況になっています。そこで、関数系(GETDATE())などをSqlParameterのVALUEに設定する方法はありますでしょうか?
よろしくお願いします。
masa
大ベテラン
会議室デビュー日: 2004/10/28
投稿数: 161
投稿日時: 2006-10-18 11:45

GetDate() って、SQLServer の関数のことですよね?

DBのシステム日付をプログラムからパラメーターで指定する必要はないと思いますが、
いったいどのようなことをしようとしているのでしょうか。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2006-10-18 11:51
さかもとです。

GETDATE()だけに関して言えば、ストアド側で指定しても良いのでは?
もしどうしてもパラメーターで渡したいのであればプログラムで今日の日付を取っておいて、それを渡すだけかと。

ざこ
会議室デビュー日: 2006/10/18
投稿数: 3
投稿日時: 2006-10-18 12:24
masaさん

はい、現在使用している内部用の基盤がたまたまパラメータを使用を強制しているだけです。(他処理を行う場合は直接SQLをたたく)

やはり関数をパラメータに設定するのは無理なんでしょうか?

ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-10-18 12:27
busaikuroです。

> GETDATE()だけに関して言えば、ストアド側で指定しても良いのでは?

というより、
「ストアド側で指定すべき」
だと、私は考えています。

ただし、これは
「ストアドの場合」
ですが。

> 現在諸事情によりSQLを発行する際、SqlParameterを使わなければならない状況になっています。

SQL文を発行する場合、
特に事情がなくても
「SqlParameter」は
使うと思います。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-10-18 12:54
ん〜意味がよく分かりませんが、どうしてもやりたいなら、.NET のクラスの DateTime.Now をパラメータに渡したらどうでしょうか。

ただし、これは
「GETDATE()の場合」
ですが。
_________________
囚人@わんくま同盟
囚人のジレンマな日々

[ メッセージ編集済み 編集者: 囚人 編集日時 2006-10-18 12:56 ]
masa
大ベテラン
会議室デビュー日: 2004/10/28
投稿数: 161
投稿日時: 2006-10-18 13:22
>はい、現在使用している内部用の基盤がたまたまパラメータを使用を強制しているだけです。
>(他処理を行う場合は直接SQLをたたく)

その「内部用の基盤」がどのような引数をとるのかがわからないとなんともいえませんね。

パラメーター値に null とか、空の配列を渡すとかすれば
パラメーターなしの場合にも対応できるようにはなっていないのでしょうか。
なっていないとすれば「基盤」としては使い勝手が悪いかなとは思います。

直接SQLをたたくのであればたたいても構わないのではないですか?
その辺りはプロジェクトルールによるでしょうから、さらに何とも言えません・・・。
ださいくろう
常連さん
会議室デビュー日: 2006/10/17
投稿数: 46
お住まい・勤務地: 豊田市
投稿日時: 2006-10-18 13:39
引用:

囚人さんの書き込み (2006-10-18 12:54) より:
ん〜意味がよく分かりませんが、どうしてもやりたいなら、.NET のクラスの DateTime.Now をパラメータに渡したらどうでしょうか。

ただし、これは
「GETDATE()の場合」
ですが。


サーバー時間とクライアント時間が同じとは限らないのでは?
レコードの更新時間なんかを記録する業務の場合まずいですよね。

スキルアップ/キャリアアップ(JOB@IT)