Dynamics AX’ta veri tabanına erişmenin ilk ve en kolay yolu
select cümlecikleri yazmaktır. Ax içinde kullanılmakta olan X++ dili SQL
cümleciklerinin pek çoğunu destekler. Bu bağlamda LinQ benzeri bir yapı
sunar. Aslında X++, LinQ’dan daha eskidir.
Pek çok enterprise uygulamada bir veri erişimkatmanı (Data Access Layer , DAL) yazmak gerekir. Dynamics AX’ta bir data access layer yazmak gerekmez, zira veri tabanındaki tüm metadata (Tablolar, Viewlar, tipler vs.) kod içerisinden direk kullanılabilir.
Alttaki gibi bir SQL cümleciği yazarak SQL Server’da çalıştırırsanız tablodaki tüm veriler gösterilirken,Dynamics AX’ta tek satır (indekse göre ilk satır) veri gösterilir.
SELECT * FROM INVENTTABLEPek çok enterprise uygulamada bir veri erişimkatmanı (Data Access Layer , DAL) yazmak gerekir. Dynamics AX’ta bir data access layer yazmak gerekmez, zira veri tabanındaki tüm metadata (Tablolar, Viewlar, tipler vs.) kod içerisinden direk kullanılabilir.
Alttaki gibi bir SQL cümleciği yazarak SQL Server’da çalıştırırsanız tablodaki tüm veriler gösterilirken,Dynamics AX’ta tek satır (indekse göre ilk satır) veri gösterilir.
Table Buffer
ise tablo adı ile tanımlanmış bir değişkendir. Aslında bir class’ın (xRecord)
nesnesi olmakla birlikte, new metoduna gereksinim duymadan
kullanılır. Table Buffer bir tablodaki tek satırlık veriyi tutabilir ve
select cümlecikleri ile veri tabanından okunan veri ile doldurulabilir.
CustTable custTable; //Bu bir table bufferdır.
;
select * from custTable where custTable.AccountNum == "M0001" ;
// bu ifade ile alttaki aynı anlama gelir.
//Ax'ta özellikle field belirtilmeyecekse * from demeye gerek yoktur.
select custTable where custTable.AccountNum == "M0001" ; |
Elbette kod içerisinden atama yapmak da mümkündür. Yapılan değişiklikler ya da düzenlemeler veri tabanına anında aksetmez. Değişkliklerin veri tabanına yazılması için update() metodu kullanılmalıdır. Veri modifikasyonuna daha sonra değineceğim.
CustTable custTable; //Bu bir table bufferdır ; select custTable where custTable.AccountNum == "M0001" ; custTable.Name = "emre" ; //Bu değişiklik sadece bellekte yapıldı. |
Özetle Ax içinden select cümlecikleri yazılarak veri tabanına
direk erişilir. Veri tabanından alınan veri table bufferda tutulur. Bir
table buffer tek seferde sadece bir satır veri tutabilir. Table buffer üzerinde
değişiklik yapılabilir ama özellikle veri tabanında update (insert,
delete) işlemi yapılmazsa kendiliğinden bir update (insert, delete) söz
konusu değildir. Örnekte görüldüğü üzere where cümleciği ile kriter ya da
kriterler belirtilebilir. Kriterler ve (&&) ya da veya(||) operatörleri
ile birleştirilirler. Son olarak kriterlerin eşitliğinde çift eşittir (==)
kullanılır.
Ali Güç - 2014
Hiç yorum yok:
Yorum Gönder