# SQL-DB Client Connect

Dieser Funktionsblock wird verwendet, um eine Verbindung zu einer SQL-Datenbank (MySQL, PostgreSQL, MSSQL, SQLite) zu konfigurieren und herzustellen. Verwenden Sie ihn, um einen persistenten Datenbank-Client zu erstellen, den andere Blöcke zum Ausführen von Abfragen oder für Datenoperationen verwenden können.

## 📥 Eingänge

Dieser Funktionsblock hat keine Eingangsanschlüsse.

## 📤 Ausgänge

* `DB Client`\
  Ein wiederverwendbares Datenbank-Client-Objekt, das von anderen Blöcken (z. B. `SQL-DB Operations`) verwendet werden kann, um Abfragen und Transaktionen auszuführen.
* `Connection Success`\
  Ein Boolean, der anzeigt, ob die Verbindung erfolgreich hergestellt wurde.

## 🕹️ Steuerungen

* `Database Type`\
  Ein Dropdown, um den Datenbanktyp auszuwählen (MySQL, PostgreSQL, MSSQL, SQLite). Bei Auswahl von `SQLite` wird die UI vereinfacht, da Host/Port/User/Password nicht erforderlich sind.
* `Host`\
  Hostname oder IP-Adresse des Datenbankservers. Für `SQLite` ausgeblendet.
* `Database`\
  Name der Datenbank. Bei `SQLite` wird dieses Feld als Pfad zur Datenbankdatei verwendet.
* `Port`\
  TCP-Port des Datenbankservers. Für `SQLite` ausgeblendet.
* `User`\
  Datenbank-Benutzername. Für `SQLite` ausgeblendet.
* `Password`\
  Datenbank-Passwort. Für `SQLite` ausgeblendet.

Hinweis: Änderungen an einem dieser Felder setzen die bestehende Verbindung zurück und lösen beim nächsten Auswerten des Blocks einen neuen Verbindungsversuch aus.

## 🎯 Features

* Einfache Multi-Database-Unterstützung mit einer einheitlichen UI für gängige SQL-Backends.
* `SQLite`-Kompatibilität mit reduzierten Feldern bei Auswahl einer dateibasierten Datenbank.
* Liefert ein einsatzbereites `DB Client` und eine `Connection Success`-Flag für nachgelagerte Logik und Fehlerbehandlung.
* Automatische Wiederverbindung bei erkannten Konfigurationsänderungen.

## 📝 Nutzungshinweise

1. Wählen Sie `Database Type`, das zu Ihrem Server passt.
2. Füllen Sie `Host`, `Port`, `User`, `Password` und `Database` entsprechend aus (bei `SQLite` geben Sie den Dateipfad in `Database` an).
3. Führen Sie Ihr Szenario aus oder werten Sie den Block aus. Der Block versucht, eine Verbindung herzustellen, und setzt `Connection Success` entsprechend.
4. Verwenden Sie den bereitgestellten `DB Client` zusammen mit `SQL-DB Operations`, um Abfragen, Inserts, Updates oder andere Datenbankaufgaben durchzuführen.
5. Wenn Sie Verbindungsfelder ändern, setzt der Block die aktuelle Verbindung zurück und versucht beim nächsten Auswerten erneut, die Verbindung herzustellen.

## 📊 Bewertung

Bei der Auswertung validiert der Block die angegebenen Parameter und versucht, eine Verbindung herzustellen. Bei Erfolg stellt er über die Ausgabe `DB Client` einen wiederverwendbaren Client bereit und setzt `Connection Success` auf true. Bei einem Fehler protokolliert er einen Fehler und setzt `Connection Success` auf false.

## 💡 Tipps und Tricks

* Kombinieren Sie mit `SQL-DB Operations`, um Abfragen auszuführen und Ergebnisse in den Flow zurückzugeben.
* Verwenden Sie `Data to JSON`, um komplexe Ergebnisse zu serialisieren, bevor Sie sie in Dateien schreiben oder über ein Netzwerk senden.
* Nutzen Sie `CSV Export` oder `Image Logger` (für bildbezogene Metadaten), um Ergebnisse aus Datenbankabfragen zu persistieren.
* Verwenden Sie `Data Write Local` oder `Data Write Global`, um den `DB Client` oder jüngste Abfrageergebnisse zur Wiederverwendung in anderen Projektteilen zu speichern.
* Nutzen Sie `Debug Input`, um rohe Ausgaben von `SQL-DB Operations` beim Erstellen und Debuggen des Szenarios zu inspizieren.

## 🛠️ Fehlersuche

* Verbindung schlägt fehl, obwohl die Zugangsdaten korrekt sind: Prüfen Sie den Netzwerkzugang zum `Host` und ob der gewählte `Port` offen und erreichbar ist.
* Bei Verwendung von `SQLite`: Stellen Sie sicher, dass der in `Database` angegebene Pfad zugänglich ist und die Anwendung Lese-/Schreibrechte für diese Datei hat.
* Wenn Konfigurationsänderungen nicht zu greifen scheinen: Bearbeiten Sie ein beliebiges Steuerelement (z. B. `Host`), um den Block zum Zurücksetzen und erneuten Herstellen der Verbindung zu zwingen.
* Wenn Sie Rückgabedaten während der Entwicklung prüfen möchten, hängen Sie `SQL-DB Operations` und `Debug Input` an, um Antworten zu inspizieren, bevor Sie sie weiter integrieren.


---

# 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/german/function-blocks/input-output/communication/sql-db-client-connect.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.
