> For the complete documentation index, see [llms.txt](https://docs.augelab.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.augelab.com/french/function-blocks/blocks-reference/input-output/communication/sql-db-client-connect.md).

# SQL-DB Client Connect

Ce bloc de fonction sert à configurer et établir une connexion vers une base de données SQL (MySQL, PostgreSQL, MSSQL, SQLite). Utilisez-le pour créer un client de base de données persistant que d'autres blocs peuvent réutiliser pour exécuter des requêtes ou manipuler des données.

## 📥 Entrées

Ce bloc de fonction n'a pas de prises d'entrée.

## 📤 Sorties

* `DB Client` — Un objet client de base de données réutilisable que d'autres blocs (par exemple `SQL-DB Operations`) peuvent utiliser pour exécuter des requêtes et des transactions.
* `Connection Success` — Un booléen indiquant si la connexion a été établie avec succès.

## 🕹️ Contrôles

* `Database Type` — Un menu déroulant pour choisir le type de base de données (MySQL, PostgreSQL, MSSQL, SQLite). Le choix `SQLite` simplifie l'interface car aucun host/port/user/password n'est requis.
* `Host` — Nom d'hôte ou adresse IP du serveur de base de données. Masqué pour `SQLite`.
* `Database` — Nom de la base de données. Pour `SQLite`, ce champ sert de chemin vers le fichier de base de données.
* `Port` — Port TCP du serveur de base de données. Masqué pour `SQLite`.
* `User` — Nom d'utilisateur de la base de données. Masqué pour `SQLite`.
* `Password` — Mot de passe de la base de données. Masqué pour `SQLite`.

Remarque : modifier l'un de ces champs réinitialisera la connexion existante et déclenchera une nouvelle tentative de connexion lors de l'évaluation du bloc.

## 🎯 Fonctionnalités

* Support simple multi-SGBD via une interface unifiée pour les backends SQL courants.
* Compatibilité `SQLite` avec champs réduits lorsque la base de données est fichier.
* Produit un `DB Client` prêt à l'emploi et un indicateur `Connection Success` pour la logique en aval et la gestion d'erreurs.
* Reconnexion automatique lorsque la configuration change.

## 📝 Instructions d'utilisation

1. Sélectionnez le `Database Type` correspondant à votre serveur.
2. Remplissez `Host`, `Port`, `User`, `Password` et `Database` selon le cas (pour `SQLite`, indiquez le chemin du fichier dans `Database`).
3. Lancez votre scénario ou évaluez le bloc. Le bloc tentera de se connecter et définira `Connection Success` en conséquence.
4. Utilisez le `DB Client` fourni avec `SQL-DB Operations` pour effectuer des requêtes, insertions, mises à jour ou autres opérations.
5. Si vous modifiez un champ de connexion, le bloc réinitialisera la connexion et tentera de se reconnecter lors de la prochaine évaluation.

## 📊 Évaluation

À l'évaluation, le bloc valide les paramètres fournis et tente d'établir la connexion. En cas de succès, il expose un client réutilisable via la sortie `DB Client` et met `Connection Success` à true. En cas d'échec, il enregistre une erreur et met `Connection Success` à false.

## 💡 Astuces

* Combinez avec `SQL-DB Operations` pour exécuter des requêtes et injecter les résultats dans le flux.
* Utilisez `Data to JSON` pour sérialiser des résultats complexes avant de les écrire dans un fichier ou de les envoyer sur le réseau.
* Utilisez `CSV Export` ou `Image Logger` (pour les métadonnées d'image) pour persister les résultats issus des requêtes.
* Utilisez `Data Write Local` ou `Data Write Global` pour stocker le `DB Client` ou des résultats récents afin de les réutiliser dans différentes parties du projet.
* Utilisez `Debug Input` pour inspecter les sorties brutes de `SQL-DB Operations` lors du développement et du dépannage.

## 🛠️ Dépannage

* Connexion échoue alors que les identifiants sont corrects : vérifiez l'accès réseau vers `Host` et que le `Port` sélectionné est ouvert et accepte les connexions.
* Utilisation de `SQLite` : assurez-vous que le chemin indiqué dans `Database` est accessible et que l'application a les permissions de lecture/écriture sur ce fichier.
* Les changements de configuration ne semblent pas être pris en compte : modifiez un contrôle (par exemple `Host`) pour forcer le bloc à réinitialiser et rétablir la connexion.
* Pour vérifier les données retournées pendant le développement, connectez `SQL-DB Operations` et `Debug Input` afin d'inspecter les réponses avant de les intégrer.
