2017-08-15 56 views
0

我使用的是經典ASP。我有一個數據庫查詢的包裝函數,它接受一個查詢字符串和一個參數數組,並自動創建適當的查詢對象並運行查詢。非常方便,一直在努力。經典ASP + ADODB - 如何查看正在運行的實際查詢(用於測試)

這是我的問題:當測試時,我經常想查看傳遞給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,因爲它會允許你查看SQL文本,以及在傳遞的價值。它會允許您設置斷點,以及查看運行查詢需要多長時間。但是,這需要將查詢發送到實際的數據庫(以前請求)。

要做到這一點,您需要遍歷命令對象中的參數集合,然後使用命令文本屬性中的鍵/值對進行查找/替換。如果你可以使用Profiler,那麼最好不過了。

+0

我不介意它是否實際發送 - 無論如何它都是測試服務器上的測試數據。我只想看看究竟發送了什麼。謝謝。 –

+0

然後分析器是你的解決方案。這樣一個方便的工具 –