Özel SQL Araçları (Custom SQL Tool)
Özel SQL Araçları (Custom SQL Tool)
Genel Bakış
Özel SQL Araçları, kullanıcıların arama editörlerine (BankSearch, ItemSearch vb.) özel SQL sorguları bağlamasına olanak tanır. Bir sayfada bu editörlerden biri yüklendiğinde, tanımlı bir sorgu varsa editörün yanında bir ikon görünür. İkona tıklandığında, editörün mevcut değeri parametre olarak kullanılarak SQL sorgusu çalıştırılır ve sonuçlar bir popup grid’de gösterilir.
Yönetici Kılavuzu: Tanım Oluşturma
Tanım Sayfasına Erişim
/CustomSqlTool adresine gidin. Bu sayfa tüm özel SQL araç tanımlarını listeler.
Yeni Tanım Oluşturma
- Yeni Kayıt butonuna tıklayın
- Açılan modalda aşağıdaki alanları doldurun:
- Kod: Otomatik oluşturulur (salt okunur)
- Açıklama: Tanımın amacını açıklayan metin
- Partial Adı: Hedef arama editörünün klasör adı (örn:
BankSearch,ItemSearch,CustomerWithAccountsSearch) - SQL Sorgusu: Çalıştırılacak SELECT sorgusu (
@Idparametresi kullanılmalı) - Pasif mi?: Tanımı geçici olarak devre dışı bırakmak için
- Alan Ekle butonu ile sonuç sütunlarını tanımlayın:
- Alan Adı (
fieldName): SQL sorgusundaki sütun adı ile birebir eşleşmeli - Ekran Adı (
displayName): Grid’de görünecek başlık - Sıra (
index): Sütun sırası (0’dan başlar)
- Alan Adı (
- Kaydet butonuna tıklayın
Tanım Düzenleme
Grid’de ilgili satırdaki düzenle ikonuna tıklayın. Mevcut değerler modal’da yüklenir.
Tanım Silme
Grid’de ilgili satırdaki sil ikonuna tıklayın. Tanım pasif yapılır (kalıcı silinmez).
Kullanıcı Kılavuzu: Sayfalarda Kullanım
Nasıl Çalışır?
- Bir sayfa yüklendiğinde, sayfadaki tüm arama editörleri otomatik taranır
- Tanımlı bir özel SQL aracı olan editörlerin yanında mavi bir veritabanı ikonu (📊) görünür
- Editörde bir değer seçtikten sonra ikona tıklayın
- Sonuçlar bir popup grid’de gösterilir
Dikkat Edilmesi Gerekenler
- İkona tıklamadan önce editörde bir değer seçilmiş olmalıdır
- Değer seçilmemişse uyarı mesajı görüntülenir
- Sonuçlar anlık olarak veritabanından çekilir
SQL Sorgusu Format Gereksinimleri
Temel Kurallar
- Sorgu SELECT veya WITH (CTE) ile başlamalıdır
- Parametre olarak yalnızca
@Idkullanılır (GUID değeri otomatik bağlanır) - Aşağıdaki komutlar yasaktır:
INSERT,UPDATE,DELETE,DROP,ALTER,CREATE,EXEC,EXECUTE,TRUNCATE,MERGE
Örnek Sorgular
Basit Sorgu
SELECT AccountNumber, IBAN, BranchName
FROM BankAccounts
WHERE BankId = @Id AND IsActive = 1
CTE ile Sorgu
WITH AccountSummary AS (
SELECT BankAccountId, SUM(Amount) as TotalAmount
FROM Transactions
WHERE BankId = @Id
GROUP BY BankAccountId
)
SELECT ba.AccountNumber, ba.IBAN, s.TotalAmount
FROM BankAccounts ba
JOIN AccountSummary s ON s.BankAccountId = ba.Id
Alan Metadatası Eşleştirme
- Tanımdaki her
fieldName, SQL sorgu sonucundaki sütun adı ile birebir eşleşmelidir - SQL sorgusunda tanımda belirtilmeyen sütunlar sonuçlarda gösterilmez
- Sıralama
indexdeğerine göre yapılır
@Id Parametresi
@Idparametresi, kullanıcının editörde seçtiği kaydın GUID değerini alır- Parametre her zaman güvenli şekilde (parameterized query) çalıştırılır — string birleştirme yapılmaz
- Sadece tek bir parametre desteklenir
Güvenlik
- SQL sorguları kayıt sırasında ve çalışma zamanında doğrulanır
- Yalnızca SELECT/WITH sorguları kabul edilir
@Idher zaman parametrik olarak çalıştırılır (SQL injection koruması)- Tanım oluşturma yetkisi sadece yetkili kullanıcılara aittir