SQL sorgularında tek tırnak işareti kullanmak WinTr’de pek kolay değil. Zira WinTr Tag isimlerini tırnak ile algılıyor. Bunun yerine sorgunun tamamı veya bir kısmı Tag değeri olarak ayarlanmalı ve soruda bu Tag kullanılmalı.

Örnek Sorgu: SELECT Tag_1,IIF(Tag_1 = 0,’Kabul’,’Red’) as Tag_1 FROM TABLE1

Örnek sorguda Tag_1 değeri sıfır olduğunda Kabul, Sıfırdan farklı olduğunda Red yazdırmak istiyoruz. Fakat tırnak işaretlerinden dolayı sorguyu derlediğimizde aşağıdaki sonucu alıyoruz.

SELECT Tag_1,IIF(Tag_1 = 0 ‘Tag not found’ ‘Tag not found’  as Tag_1 FROM TABLE1

Çünkü WinTr tırnak işareti içersindeki verileri Tag ismi olarak algılıyor. Kabul ve Red isminde taglar olmadığı için de Tag bulunamadı hatası veriyor.

Çözüm için sorguyu bir tag içersine gömmeliyiz. Internal bir tag oluşturup ismini Tag_SQLQuery tipini string olarak ayarlayalım. Bu tag’a bir kereye mahsus sorguyu yazmalıyız. Ekrana bir Textbox koyup, value Tag’ı olarak Tag_SQLQuery tagını seçip runtime’ı açar ve örnek sorguyu yapıştırıp runtime kapatırız. Ekrandaki TextBox’ı silebiliriz. Tag_SQLQuery Tag’ı içerinde sorgu sonsuza kadar kalacaktır.

Control Panelinden rapor modülünü açıp sorgu alanına sadece ‘Tag_SQLQuery’ ifadesi başında bir boşluk bırakarak yazılır. Sorgu derlendiğinde örnek sorguyu alırız.

Fakat sorgu sonunda Tarih veya başka sebeplerden dolayı dinamikdeğişen bir sorguya ihtiyacımız olabilir. Bu durumda sorgunun tamamı yerine bir kısmının Tag içersine gömülmesi gerekir. Aynı örnek için problem çıkartan kısmı yani Kabul’,’Red ifadesini Tag_SQLQuery tagına değer olarak verelim. Bu defa Control Panelinde aşağıdaki sorguyu yazalım.

SELECT Tag_2,IIF(Tag_2 = 0, ‘Tag_SQLQuery’ ) as W02 FROM TABLE1

Dikkat edin ‘Tag_SQLQuery’ ifadesinin önünde ve arkasında bir boşluk olmalı. Bu sorgu derlendiğinde örnek sorgumuzu elde ederiz. Bu şekilde sorgu sonunda veya diğer dinamik değerler de çalışmış olacaktır. Ayrıca Kabul, Red seçeneklerinin bulunduğu diğer sorgularda da aynı Tag’ı kullanabiliriz.

Yazı uzun oldu maalesef en kestirme yolu şimdilik bu. Aşama aşama yazılanları anlamaya çalışın bir kere çözdüğünüzde bir daha uğraşmayacaksınız.