# Connecteur de base de données

## 🔃 Qu'est-ce que le Database Connector ?

Grâce à ce connecteur, vous pouvez connecter votre panel à n'importe quelle table avec une clé primaire ou à toute vue disponible dans des bases de données telles que SQL Server, Oracle, Postgres, MySQL ou MariaDB.

{% hint style="info" %}
Avec le Database Connector, vous pouvez par exemple connecter une table clients existante de votre base de données à ngSurvey et réutiliser ensuite les informations que vous possédez sur ces clients dans vos sondages.
{% endhint %}

## ➕ Ajout d'un Database connector

Pour ajouter un connecteur ngSurvey, vous pouvez cliquer sur le **New panel** bouton sur le [de panels](https://docs.ngsurvey.com/fr/panels) écran et sélectionner soit le **Database Table Connector** ou le **Database View Connector**.

![](https://186103257-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M8fLhS0bmfBRyq0HdUm%2F-MC3MOhW6caE3tR3ItaK%2F-MC3MrjV7E4As9poIQ7I%2Fcaptured%20\(38\).gif?alt=media\&token=fe2efc02-075a-42b1-9d07-e0813163dcd2)

{% hint style="warning" %}
Une clé primaire est requise sur la table à laquelle vous souhaitez vous connecter et cette colonne de clé primaire sera automatiquement mappée à la colonne source uid de votre panel.
{% endhint %}

## 🔅 Propriétés du Database connector

* **`Chaîne de connexion à la base de données`** [connection string](https://www.connectionstrings.com/sql-server/) vers votre base de données.
* **`Table à connecter au panel`** table de votre base de données qui sera utilisée pour votre panel. Votre table doit comporter une clé primaire.
* **`Colonnes de la table à synchroniser`** colonnes de votre table qui seront utilisées comme attributs.
* **`Mode de synchronisation`** si la synchronisation des données de la table sera déclenchée manuellement depuis la [boîte d'information du panel](https://docs.ngsurvey.com/fr/panels/panel-information) ou automatiquement.
* **`Type de synchronisation des données`** quels changements de la table doivent être mis à jour après la création du panel et la première synchronisation de ses données.
  * **Ajouter** ajoutera de nouvelles entrées de la table au panel.
  * **Mettre à jour** mettra à jour toute modification de la table dans le panel.
  * **Supprimer** supprimera toute ligne supprimée de la table du panel.&#x20;
* **`Mode de mise à jour de la source du connecteur`** comment les mises à jour de données dans ngSurvey seront propagées vers la table connectée.
  * **Après approbation** exige que vous approuviez toute modification avant qu'elle ne soit renvoyée vers la table.
  * **Lien en direct** met immédiatement à jour la table avec toutes les modifications effectuées côté ngSurvey.
  * **Non autorisé** aucune modification ou mise à jour ne sera renvoyée vers la table SQL.
* **`Intervalle de synchronisation de la source`**&#x6D;inutes après lesquelles la table sera à nouveau synchronisée si le mode de synchronisation est défini sur Automatique.

## &#x20;[✅](https://emojipedia.org/check-mark-button/) **Modes de connecteur de panel pris en charge**

* **Lecture**   Permet de synchroniser la structure et les données d'une table ou d'une View.
* **Mettre à jour** Permet de [mettre à jour les données existantes](https://docs.ngsurvey.com/fr/form-management/form-designer/questions/panel-linking/panel-updating) dans la table connectée.&#x20;

## ⚠️ **Limitations / problèmes connus**

Le Database Connector présente certaines limitations listées ci‑dessous.

* Une seule clé primaire : seules les tables avec une clé primaire unique sont prises en charge pour le moment.
* Il n'est pas possible d'ajouter de nouvelles colonnes à synchroniser une fois le panel créé.

## 🔢 Types SQL Server pris en charge

Les types de colonnes SQL Server suivants sont actuellement pris en charge pour la synchronisation.

* bigint
* int
* smallint
* tinyint
* bit
* decimal
* numeric
* money
* smallmoney
* float
* real
* datetime
* smalldatetime
* char
* varchar
* text
* nchar
* nvarchar
* ntext
