2015-09-04 77 views
1

我正在使用IronSpeed Designer 12.2並試圖在WhereClause覆蓋中編寫自定義SQL。我在WhereClause中編寫並提交的自定義SQL引發了一個SQL異常,但我看不到SQL IronSpeed發送到數據庫。沒有SQL,我無法排除故障。您如何看到SQL IronSpeed發送到數據庫的內容?

我無法找到將SQL提交到數據庫的位置,例如通過ExecuteReader方法調用。

我使用如下語句:

if (MiscUtils.IsValueSelected(this.MyFilter)) {        
      String sql = "(EXISTS (SELECT TOP 1 CompanyId FROM Collateral as c WHERE CODE = '{0}' AND c.CompanyId = Company.CompanyId))"; 
      wc.iAND(String.Format(sql, this.MyFilter.SelectedValue));     
     } 

我知道IronSpeed外使用,因爲我從查詢直接在MSSQL工作的複製粘貼就我WhereClause SQL是正確的。但是,我無法看到IronSpeed在它成爲WhereClause後如何將它與內部生成的SQL相結合。

我希望有人有這個問題的經驗,並可以指出我在正確的方向。謝謝您的幫助!

回答

1

如果你足夠長的時間尋找答案,你可以自己找到答案。下面是我發現你可以檢查發送到數據庫的SQL:

  1. 轉到C:\ Program Files \ Iron Speed \ Designer v12.2.0。
  2. 將BaseClasses文件夾複製到我的IronSpeed解決方案文件夾的根目錄。
  3. 將現有的BaseClasses項目添加到IronSpeed解決方案。
  4. 從IronSpeed解決方案中的項目(我正在使用Web應用程序而非網站項目)中刪除對baseclasses.dll的現有引用。
  5. 添加對解決方案中現在包含的BaseClasses項目的引用。
  6. 打開文件MicrosoftDynamicSQLAdapter.vb。
  7. 在方法GetRecordValuesEx(...)中,轉到第1514行語句「reader = SqlTransaction.ExecuteReader(myCommand,cmdBehavior)」並在此行上設置一個斷點。
  8. 運行該項目。當命中斷點時,檢查myCommand對象的命令。
+0

不錯的發現!我也看不清楚ISpeed在我的應用程序中使用的所有SQL!令人沮喪的是IronSpeed不允許你直接在應用中編輯它。 – Fandango68