- PR -

Commandオブジェクトのパラメータ値を設定した後のSQL文

1
投稿者投稿内容
たろすけ
会議室デビュー日: 2005/06/23
投稿数: 2
投稿日時: 2005-09-24 17:17
お世話になっております。

下記のようにパラメータを指定した後の、SQL を確認する方法はあるのでしょうか?

-----------------------------------------------------------
string sSql = "select * from tbl where id = :id";

OracleCommand cmd = new OracleCommand(sSql);

cmd.Parameters.Add("id", OracleDbType.Int32);
cmd.Parameters["id"].Value = 99;
-----------------------------------------------------------


cmd.CommandText.ToString();

で取得できると思っていたのですが、これだと、
パラメータ値を設定する前の "生" の SQL になってしまいます。

よろしくお願い致します。
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-09-24 17:26
こんにちは。

つまりは、プログラムから
"select * from tbl where id = 99"
という文字列を見たい、という事ですか?

どう考えても無理だと思うんですけど…。違うのかな。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2005-09-24 17:34
引用:

たろすけさんの書き込み (2005-09-24 17:17) より:
お世話になっております。

下記のようにパラメータを指定した後の、SQL を確認する方法はあるのでしょうか?

-----------------------------------------------------------
string sSql = "select * from tbl where id = :id";

OracleCommand cmd = new OracleCommand(sSql);

cmd.Parameters.Add("id", OracleDbType.Int32);
cmd.Parameters["id"].Value = 99;
-----------------------------------------------------------


cmd.CommandText.ToString();

で取得できると思っていたのですが、これだと、
パラメータ値を設定する前の "生" の SQL になってしまいます。

よろしくお願い致します。



実際に実行されるのもそのSQL文のままです。
というか、
DB側に、SQL文と、そのパラメタの名称と値が渡されて、
その中で展開されて実行されます。

それを見たい場合は、DB製品によって違うのかもしれませんが
たいていプロファイラがついていますので、それを利用する事で、
投げられたSQL文と渡されたパラメタの名称と値が確認できます。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-09-24 17:47
引用:

たろすけさんの書き込み (2005-09-24 17:17) より:

パラメータ値を設定する前の "生" の SQL になってしまいます。


パラメタを使わずに、生の状態で書くようにするしかないでしょう。
何故取得したいのかが、わからなかったのですが...


_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

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