# SQL-DB Operations

Bu fonksiyon bloğu, bağlı bir veritabanı üzerinde yaygın SQL işlemlerini (INSERT, QUERY, UPDATE, DELETE, EXECUTE) gerçekleştirmenizi sağlar. İstenen işlemi seçmek, gerekli olduğunda bir tablo adı girmek ve gerekli girdileri soketlerle beslemek için basit bir kullanıcı arayüzü sunar. İşlemler arka planda yürütülür, böylece arayüz yanıt vermeye devam eder.

## 📥 Girdiler (soketler)

Seçilen SQL işlemiyle bağlantılı olarak, blok farklı giriş soketleri sunar. Aşağıdaki her isim, başka bloklara bağlayabileceğiniz bir sokettir.

Ortak olarak tüm yöntemlerde kullanılan soketler

* `Enable`\
  Seçili işlemi çalıştırmak için true olarak ayarlanmalıdır.
* `DB Client`\
  Ayrı bir bağlantı bloğu tarafından sağlanan veritabanı istemcisi referansı (bkz. İpuçları ve Püf Noktaları).

Yönteme özel soketler

* INSERT
  * `JSON Data`\
    Seçilen tabloya eklenecek veri (JSON/sözlük).
* QUERY
  * `Query String`\
    Çalıştırılacak SQL SELECT veya diğer sorgu dizesi.
* UPDATE
  * `JSON Data`\
    Güncellenecek değerler (JSON/sözlük).
  * `JSON Data(Where Conditions)`\
    Güncellenecek satırları seçmek için WHERE koşulları.
* DELETE
  * `JSON Data(Where Conditions)`\
    Silinecek satırları seçmek için WHERE koşulları.
* EXECUTE
  * `Statement String`\
    Çalıştırılacak ham SQL ifadesi (dikkatli kullanın).

Not: Blok, seçilen işleme bağlı olarak `Table Name` giriş kontrolünü gösterir veya gizler.

## 📤 Çıktılar (soketler)

* `Output Data`\
  İşlemin sonucunu döndürür (örneğin sorgu satırları, etkilenen satır bilgisi veya işleme özel veriler).
* `Success?`\
  İşlemin başarıyla tamamlanıp tamamlanmadığını gösteren boolean.

## 🕹️ Kontroller (widget'lar)

* `Select SQL Operation`\
  INSERT / QUERY / UPDATE / DELETE / EXECUTE seçeneklerinden birini seçmek için açılır menü. Değişiklik yapıldığında, mevcut giriş soketleri seçilen işleme göre güncellenir.
* `Table Name`\
  Hedef tablo adı için metin alanı. Gereklilik durumuna göre otomatik olarak gizlenir (örneğin `EXECUTE` kullanıldığında).

## ⚙️ Çalışma mekanizması

* Blok yalnızca `Enable` soketi true değer aldığında çalışır.
* Geçerli bir `DB Client` soketi bağlı olmasını gerektirir (genellikle bir veritabanı bağlantı bloğu tarafından sağlanır).
* Tetiklendiğinde, blok seçilen işlemi arka planda çalıştırır ve tamamlandığında `Output Data` ile `Success?` döner.
* Geçersiz girdiler, eksik istemci, hatalı JSON veya SQL hataları gibi sorunlar blok mesaj/günlük alanında bildirilir.

## ✨ Temel özellikler

* Seçilen SQL işlemine göre uyum sağlayan dinamik soketler ile temiz bir kullanıcı arayüzü.
* Uzun süren veritabanı çağrıları sırasında arayüzün yanıt vermeye devam etmesini sağlayan arka plan yürütme.
* INSERT ve UPDATE için tablo verisini kolayca beslemek üzere basit JSON tabanlı girdiler.
* İleriki işlemler için net bir başarı göstergesi ve döndürülen sonuç verisi.

## 📝 Kullanım talimatları

1. `DB Client` soketine bir veritabanı istemcisi sağlayın (bkz. İpuçları ve Püf Noktaları).
2. `Select SQL Operation` ile istenen işlemi seçin.
3. Uygulanabiliyorsa, hedef tabloyu `Table Name` alanına girin.
4. Seçilen işlem için gereken veri soketlerini bağlayın (ör. INSERT için `JSON Data`).
5. İşlemi çalıştırmak için `Enable` soketine true sinyali gönderin.
6. İşlem sonrasında `Output Data` ve `Success?` çıktısını inceleyerek senaryonuzda devam edin.

## 💡 İpuçları ve Püf Noktaları

* Bağlantı kurmak için `SQL-DB Client Connect` kullanarak `DB Client` soketini oluşturun ve sağlayın.
* INSERT/UPDATE yüklerini, beklenen JSON/sözlük formatına uyması için `Data to JSON` ile hazırlayın.
* SQL dizelerini dinamik oluşturuyorsanız, sorgu veya ifadeyi `Query String` veya `Statement String` girdisine beslemeden önce `String Input` veya `String Merge` ile birleştirin.
* Sık kullanılan DB istemcilerini veya sonuçları senaryolar arasında paylaşmak için `Data Write Local` / `Data Read Local` veya küresel varyantlarını kullanın.
* Döndürülen sorgu satırlarından alan çıkarmak için `Parse Data Dictionary` kullanın ve bunları diğer bloklara iletin.
* Sorun giderirken bloğa giren ara verileri hızlıca günlüklemek ve incelemek için `Debug Input` kullanın.
* Sorgu sonuçlarını daha sonra saklamak isterseniz, çıktıyı dosyaya yazmak için `CSV Export` ile birleştirin.

## 🛠️ Sorun Giderme

* `DB Client` geçerli değil\
  Uygun bir veritabanı istemcisi bağladığınızdan emin olun (`SQL-DB Client Connect` kullanın). İstemci eksik veya geçersizse blok bir hata gösterecektir.
* İşlem hata döndürüyor\
  Sağlanan JSON yükünü veya SQL dizesini doğru olduğundan emin olarak kontrol edin. Girdileri ve çıktıları incelemek için `Debug Input` veya `Parse Data Dictionary` kullanın.
* Yanıt yok veya uzun bekleme süresi\
  Blok işlemleri arka planda çalıştırsa da uzun sorgular zaman alabilir. Sorguları küçültün veya veritabanının erişilebilir ve yanıt veriyor olduğundan emin olun.
* Bozuk/hatalı JSON\
  JSON girdileri kullanıyorsanız, JSON'u `Data to JSON` ile doğrulayın veya bağlamadan önce günlükleme bloklarıyla içeriği kontrol edin.

Sorunlar devam ederse, ipuçları için blok mesaj/günlük çıktısını inceleyin ve girdileri veya veritabanı ayarlarını gerektiği şekilde ayarlayın.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.augelab.com/turkish/fonksiyon-bloklari/input-output/communication/sql-db-operations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
