2015-09-04 62 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

相关问题