首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何查看X++ select语句Pre Ax2012的SQL表达式?

问如何查看X++ select语句Pre Ax2012的SQL表达式?
EN

Stack Overflow用户
提问于 2016-07-21 13:27:08
回答 2查看 1.5K关注 0票数 1

我正在使用Axapta4.0,并希望了解从我的x++代码中生成什么SQL语句。

如何查看生成的SQL语句?

一些背景让你理解我为什么要看代码。我的where Sourcecode编译,但是在执行过程中我得到消息,它不能加入表,因为where子句是错误的(不匹配)。我在AOT里查过了,结果吻合。

我读过这个how-to-see-the-sql-expression-of-an-x-select-statement,但它似乎只适用于AX2012,而不适用于Axapta4.0

我有个很重要的声明在这里不起作用

代码语言:javascript
复制
select *
    FROM ltabInventTable
    join * FROM ltabModelList
        where  ltabModelList.ItemId == ltabInventTable.ItemId
        && ltabModelList.IsAssortment == 0
    join * FROM ltabInventTableModule
        where ltabInventTableModule.ITEMID == ltabInventTable.ITEMID
        && ltabInventTableModule.ModuleType == 1
    join * FROM ltabCharValue
        where ltabCharValue.CHARACTERVALUE == ltabModelList.MODELLCONFIGID
    join * FROM ltabBarcodes
        where ltabBarcodes.ITEMID == ltabInventTable.ITEMID
    join * from ltabInventDim
        where ltabInventDim.INVENTDIMID == ltabBarcodes.InventDimId
    join * FROM ltabConfigTable
        where ltabConfigTable.ITEMID == ltabBarcodes.ITEMID
        && ltabConfigTable.CONFIGID == ltabInventDim.CONFIGID
        && ltabConfigTable.MODELCONFIGID == ltabModelList.MODELLCONFIGID
    outer join ltabPriceDiscItemResult //IN HERE WE HAVE THE PROBLEM
       where ltabPriceDiscItemResult.ITEMID == ltabModelList.ITEMID
        && ltabPriceDiscItemResult.MODELCONFIGID == ltabModelList.MODELLCONFIGID
        && ltabPriceDiscItemResult.SIZEID == ltabModelList.SizeID;

我有一个更小的版本,可以用。

代码语言:javascript
复制
SELECT * FROM ltabModellist //AWESOME THIS WORKS
    outer join ltabPriceDiscItemResult
       where ltabPriceDiscItemResult.ITEMID == ltabModelList.ITEMID
        && ltabPriceDiscItemResult.MODELCONFIGID == ltabModelList.MODELLCONFIGID
        && ltabPriceDiscItemResult.SIZEID == ltabModelList.SizeID;

较小的版本与更大的版本完全一样,但更大的版本是抛出一个错误。

编辑:

请求了错误消息。问题是错误只发生在德语中。我将提供德国错误信息和谷歌翻译的它。

原版:

Ein Datensatz在结果:Preisabsch裂缝(PriceDiscItemResult) kann nicht ausgew hlt Ein。Der enth lt in der WHERE-Klausel keine Verknüpfung zwischen den Join-Tabellen。

谷歌翻译:

无法选择结果价格表(PriceDiscItemResult)中的记录。WHERE子句中的联接不包含联接表之间的链接。

EN

回答 2

Stack Overflow用户

发布于 2016-07-24 06:17:17

使用Sql分析器捕获sql语句。

下面的博客将对此进行详细解释。

Brandon的菜单可以查看底层表和SQL

要了解有关的更多信息,请参阅msdn文章。Server事件探查器

票数 2
EN

Stack Overflow用户

发布于 2016-07-25 14:54:16

SQL选项卡上的AX客户端的用户选项中有一些跟踪设置,允许您在各种输出(文件、表、infolog)中记录sql语句。有关详细信息,请参阅使用“工具”菜单进行跟踪。

此外,服务器和客户端的配置实用程序也有一些跟踪选项(请参阅设置跟踪选项 )。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38505581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档