Ax 2012 ile yazdığımız bir sorgunun SQL ifadesini almak
Merhaba
Ax ile yazdığımız bir sorgunun nasıl bir SQL ifadesi oluşturduğunu görmek için ax 2012 ile gelen getSQLStatement() metodunu kullanabiliriz. Şöyle bir örnek yapalım.
static void FD_generateonlyAndgetSQLStatement(Args _args) { CustTable custTable; CustTrans custTrans; ; select generateonly firstOnly10 AccountNum, CustGroup from custTable join CurrencyCode , AmountMST from custTrans where custTrans.AccountNum == custTable.AccountNum; info(custTable.getSQLStatement()); }
Çalıştırdığınızda çıktısı şöyle olacaktır.
SELECT TOP 10 T1.ACCOUNTNUM,T1.CUSTGROUP,T1.RECID,T2.CURRENCYCODE,T2.AMOUNTMST,T2.RECID
FROM CUSTTABLE T1 CROSS JOIN CUSTTRANS T2 WHERE (T1.DATAAREAID=?) AND ((T2.DATAAREAID=?)
AND (T2.ACCOUNTNUM=T1.ACCOUNTNUM))
Burada önemli olan generateonly ifadesi generateonly olmadan bu çıktıyı elde edemezsiniz. Ne işe yarıyor derseniz bir sorguda kullandığınızda sadece SQL ifadesini oluşturuyor ama çalıştırmıyor. Bu sayede getSQLStatement() metodunu çağırdığımızda SQL ifadesini görebiliyoruz.
SQL ifadesinde dikkatimi çeken diğer bir nokta da TOP 10 kısmı. Gördüğünüz gibi aslında FirstOnly (herhengi bir rakam ) şeklinde bir metod kolayca yapılabilir. Ax’ı geliştiren arkadaşlar artık bunu yapmalı.
Selamlar.