2016-07-21 9 views
1

私はAxapta 4.0を使用しており、私のx ++コードからどのSQL文が生成されているのかを見たいと思っています。X ++ selectステートメントのSQL式の表示方法Pre Ax2012?

生成されたSQL文はどのように表示されますか?

バックグラウンドがあるので、なぜコードを見たいのか分かります。 私のX ++ソースコードがコンパイルされますが、実行中にwhere句が間違っている(マッチングしていない)ため、テーブルに参加できないというメッセージが表示されます。私はAOTでそれを見て、それは一致します。

私はこの how-to-see-the-sql-expression-of-an-x-select-statementを読んでいますが、それだけでAX2012にapplys、私はここに

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; 

が動作していない大きな文を持っていると私は、小さいバージョンを持って

をAxapta4.0ないようですうまくいく。

小さいバージョンは、大きなものとまったく同じように結合していますが、大きなものはエラーを投げています。

編集:

エラーメッセージが要求されました。問題は、エラーはドイツ語でしかないということです。 私はドイツ語のエラーメッセージとそのGoogle翻訳を提供します。

オリジナル:Resultat Preisabschrift(PriceDiscItemResult)で

アインDatensatzカン NICHTausgewähltwerden。 WHERE-KLUSSEL KEY に参加するにはJoin Tabableを使用してください。

Googleの翻訳:

結果pricemarkdown(PriceDiscItemResult)のレコードが を選択することはできません。 WHERE句の結合には、 結合表間にリンクが含まれていません。

+0

私は明白なことを嫌いですが、誰かがそれをやろうとしています...あなたの最初の選択には最後にセミコロンがありませんか? –

+0

ああええ、それはおそらくコピーアンドペースト中に失われたでしょう。私は選択している間も同じことを試しましたが、どちらもうまくいきませんでした。しかし、ありがとう、ちょうどセミコロンだったなら、私は少し恥ずかしい感じがするでしょう:)。私はそれを上に修正するでしょう – Bongo

+0

@ian_schoそれはセミコロンだったら、それは私に驚いていないだろう。私はかなりaxaptaに新しいです – Bongo

答えて

2

Sql profilerを使用してSQL文を取得します。

以下、ブログで詳しく説明しています。

Brandon’s Dynamics AX SQL Server Profiler Recipe to see the underlying Tables and SQL

SQLプロファイラの詳細については知っているMSDNの記事を参照してください。 SQL Server Profiler

+1

私はこの答えが正しいと私はそれをupvoteを与えるだろうと言うだろうが、あなたはビデオやブログが削除される場合は、他のユーザーはまだ何をすべきか知っているので、より多くのコンテキストを提供する必要があります。 – Bongo

0

は、さまざまな出力(ファイル、テーブル、情報ログ)内のSQL文をログに記録できるようにするSQL]タブの[AXクライアントでのユーザーオプションでいくつかのトレース設定があります。詳細については、Tracing with the Tools Menuを参照してください。

また、サーバーとクライアントの構成ユーティリティには、いくつかのトレースオプションがあります(詳細は、Set tracing optionsを参照してください)。

関連する問題