您如何看待SQL IronSpeed发送到数据库的内容?

时间:2015-09-04 14:02:15

标签: ironspeed

我正在使用IronSpeed Designer 12.2并尝试在WhereClause覆盖中编写自定义SQL。我在WhereClause中编写和提交的自定义SQL引发了SQL异常,但我无法看到SQL IronSpeed正在向数据库发送。没有SQL,我无法排除故障。

我无法找到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));                
        }

我知道我的WhereClause SQL在IronSpeed之外使用是正确的,因为我从直接在MSSQL中工作的查询中复制粘贴它。但是,我无法看到IronSpeed在成为WhereClause之后如何将其与内部生成的SQL结合起来。

我希望有人有这方面的经验,可以指出我正确的方向。谢谢你的帮助!

1 个答案:

答案 0 :(得分:1)

如果你找到足够长的答案,你可以自己找到答案。以下是我发现您可以检查发送到数据库的SQL的方法:

  1. 转到C:\ Program Files \ Iron Speed \ Designer v12.2.0。
  2. 将BaseClasses文件夹复制到IronSpeed解决方案文件夹的根目录。
  3. 将现有的BaseClasses项目添加到IronSpeed解决方案。
  4. 从IronSpeed解决方案中的项目中删除对baseclasses.dll的现有引用(我使用的是Web应用程序而不是网站项目)。
  5. 添加对现在包含在解决方案中的BaseClasses项目的引用。
  6. 打开文件MicrosoftDynamicSQLAdapter.vb。
  7. 在方法GetRecordValuesEx(...)中,转到第1514行语句“reader = SqlTransaction.ExecuteReader(myCommand,cmdBehavior)”并在此行上设置断点。
  8. 运行项目。当命中断点时,检查myCommand对象的命令。