2017-08-15 7 views
0

私はClassic ASPを使用しています。私は、クエリ文字列とパラメータの配列を受け入れ、適切なクエリオブジェクトを自動作成し、クエリを実行するデータベースクエリのラッパー関数を持っています。非常に便利で、素晴らしい仕事をしています。従来のASP + ADODB - 実際のクエリを表示する方法(テスト用)

私の問題は次のとおりです。テストすると、SQLに渡されるクエリの正確なテキストが表示されることがよくあります。結局のところ、連結を介してクエリをアセンブルする「悪い昔」では、文字列を書き出すだけでした。パラメータ化を使用しているので、もう少し面倒です。

データベース接続に渡される直前に完全にアセンブルされたクエリ文字列を確認するにはどうすればよいですか?

私が使用している機能は以下のとおりです。 (実際の機能は、例えば、文字列を負いません。)それは値が渡されるものとしてあなたにもSQLテキストを表示することができますよう

Public Function pquery(strQuery, params) 
    Dim cmd, param, thisParam, rs 
    Set cmd = Server.CreateObject("ADODB.Command") 
    cmd.ActiveConnection = MyConn 
    cmd.CommandText = strQuery 
    If IsArray(params) then 
     Dim adVarChar : adVarChar = 200 
     For Each param In params 
      Set thisParam = cmd.CreateParameter("@p", adVarChar, , len(param), param) 
      cmd.Parameters.Append thisParam 
     Next 
    End If 
    Set rs = cmd.Execute 
    Set pquery = rs 
End Function 
+0

多分ConnectionStringにアクセスしますか? –

答えて

1

私は、Sql Query Profilerを使用して検討する。それはよブレークポイントを設定したり、クエリを実行するのにかかる時間を確認することができます。ただし、これにはクエリが実際のデータベースに送信される必要があります(これまでに要求していたものです)。

事前に行うには、コマンドオブジェクトのパラメータコレクションをループしてから、コマンドテキストプロパティのキーと値のペアを検索/置換する必要があります。あなたがプロファイラを使用することができれば、それは最高の状態でハッキリしているでしょう。

+0

実際に送信されるかどうかは気にしません。とにかくテストサーバー上のテストデータです。私はただ何が送られるのか正確に見たいと思う。ありがとう。 –

+0

あなたプロファイラがあなたのソリューションです。そのような便利なツール –

関連する問題