Canias ERP Troia Eğitimleri 20 – Personel Yönetim Sistemi Projesi – 4 (String Sorgular Oluşturma)

Troia eğitimlerimize 20. yazımızla devam ediyoruz.

Bir önceki dersimizde normal bir şartlı sorgu ile veri çekmiştik.

Canias ERP Troia Eğitimleri 19 – Personel Yönetim Sistemi Projesi – 4 (CP Metodu)

 

Bu yazımda ise Troia’ya ait bir özellikten sorguları string olarak oluşturup nasıl çalıştırabileceğimizi göstereceğim.

Bazı durumlarda sorgumuza iki farklı durumun kontrolü yapılıp ona göre sorgulatmamız gerekebilir. Böyle bir durumu normal bir SQL sorgusu ile çözmek biraz zor. Bunu çözmek için Troia da oluşturulacak sorgular bir string içine atılıp sonra asıl sorgu cümlesine @ObjectIsmi şeklinde verilerek çalıştırılır.

Bizim örneğimizde herhangi bir şarta bağlı durum yok ama bir önceki yazımızdaki Where şartı için yazdığımız kısmı bir string içine yazacağız sonra bunu sorgu üzerinden çağıracağız.

Önce ilk halini görelim.

Şimdi ise bahsettiğimiz kodlama şeklini göstereyim. Daha sonra üzerinden anlatalım.

Öncelikle bir OBJECT oluşturuyoruz. Türü STRING. İstediğiniz ismi verebilirsiniz ama IAS standartlarına uygun kod geliştirme isteğiniz varsa biz Where kısmını yazacağımız için değişken ismimize SELWHERE diyoruz.

Daha sonra bu değişkene adım adım sorgudaki şartı yazıyoruz.

‘PERSONELNO LIKE ‘ Where ifadesinden sonra ilk satır böyle başlıyordu zaten bununla başladık. Sonrasından devamı CP(PERSONELNO) şeklinde devam ediyordu. Ama yazdığımız ifade bir string olduğu için bunu şöyle yazarsak

‘PERSONELNO LIKE CP(PERSONELNO) ‘ buradaki her şeyi bir cümle gibi bir ifade gibi göreceği için CP metodunu ve PERSONELNO parametresini işleyemeyecektir.

Bunu çözmek için bir string birleştirme işlemi yapmamız gerek. İki string ifade + işareti ile birleştirilebilir.

Sondaki CP(PERSONELNO) kısmın iki tek tırnak arasına yazılıp birleştirirsek ilkinden farklı bir durum oluşmucaktır. Onun için tırnak işaretlerini Troia’nın anlıca şekilde değil SQL’in anlıca şekilde yapacağız. Onuda TOCHAR(39) ile yapacağız.

ASCII karakterlerinde 39 un karşılığı tek tırnaktır.

‘PERSONELNO LIKE ‘+TOCHAR(39)+CP(PERSONELNO)+TOCHAR(39);

bu işlemi yaparak tamda istediğimiz sorgu kompozisyonunu elde etmiş olduk aslında.

Daha sonra alt alta bütün şart bu değişkene eklenir.

SELWHERE=SELWHERE+’ AND PERSONELNAME LIKE’+TOCHAR(39)+CP(PERSONELADI)+TOCHAR(39);

Burada dikkat etmeniz gereken AND ifadesinden önce bir boşluk bırakıldığıdır. Boşluğu eğer bırakmazsanız birleştirme işlemi sonrasında bir önceki parametreden gelen değeri AND ile birleştirir ve sorgu doğru bir şekilde çalışmayacaktır.

Tüm işlemleri yaptıktan sonra artık bu değişkeni sorgu içinde çalıştırmak kaldı.

SELECT * FROM EDUTESTTABLE WHERE @SELWHERE INTO PERSONELBILGISI;

WHERE ifadesinden sonra bir boşluk bırakıyoruz ve @SELWHERE diyerek tüm sorgu şartını oraya taşımız oluyoruz.

Yapı olarak daha karmaşık gibi görünüyor ama ki öyle de. Ama bu tür kodlamalara sıklıkla ihtiyaç duyuyoruz Troia’da geliştirme yaparken.

Şimdi birde sonuçlarına bakalım.

İstediğimiz sonuçları yine alabildiğimize göre bir sonraki yazımda görüşmek üzere.

 

Facebook Sayfamizdan Bizleri Takip Edebilirsiniz
Murat Bilginer

Industryolog Akademi Founder – Endüstri Mühendisi
Canias ERP Troia Geliştiricisi & Yazılım Uzmanı
7 Yıldır bildiğini paylaşmak için çabalayan bir blogger.

http://muratbilginer.net/