Altova DiffDog Server 2025 

[datasource]: Configurer les sources de données

Accueil Préc Haut Suivant

Afin de comparer des données tabulaires originant d’une base de données ou d’un fichier CSV, les sources de données à comparer doivent être définies pour qu’elles incluent des détails de connexion à la base de données et autres paramètres pertinents. Une source de données doit exister pour chaque table de base de données, mode ou requête SQL personnalisée que vous souhaitez inclure dans la comparaison. Si des fichiers CSV sont impliqués dans la comparaison, une source de données doit également exister pour chaque fichier CSV.

 

Configuration des sources de données

Une source de données est définie dans la section [datasource:<name>] du fichier de configuration. Ouvrez le fichier de configuration client et ajoutez une nouvelle section [datasource:<name>], où <name> est le nom unique par lequel vous souhaitez identifier cette comparaison de base de données.

 

Les sources de données peuvent aussi être ajoutées au fichier de configuration du serveur. Cela est très utile si vous souhaitez vous connecter à la source de données depuis l'appareil sur lequel DiffDog Server (pas le DiffDog Command Line Client) est exécuté. Notez, toutefois, que les connexions du côté du serveur qui requièrent l’authentification Windows pour les bases de données comme SQL Server peuvent rencontrer des problèmes dans ce cas. Ceci est dû au fait que le service DiffDog Server est exécuté comme utilisateur séparé qui n’a peut-être pas accès à la base de données. La solution dans ce cas est de définir la source de données dans le fichier de configuration client - puisque la Ligne de commande Client DiffDog est exécutée lorsque l'utilisateur exécute la commande data-diff.

 

Aperçu des sources de données

Chaque source de données doit fournir une table, un mode ou un recordset nommé personnalisé extrait par une requête SQL. Pour spécifier cela, définir les options table ou sql ci-dessous (elles sont exclusives mutuellement). Chose plus importante, pour chaque table, le mode, ou un recordset, il doit y avoir au moins une colonne qui garantit le caractère unique de chaque ligne. Cette colonne (ou plusieurs colonnes) sera appelée ensuite la colonne « clé ». Si la table a une clé primaire, une colonne clé existe et le caractère unique de la ligne est garanti. Sinon, nous vous recommandons de spécifier une ou plusieurs colonnes qui doivent être traitées en tant que colonnes « clé ». Vous pouvez ce faire en définissant les options key-columns-by-name and key-columns-by-ordinal ci-dessous.

 

Une source de données sera nommée dans la section [datadiff] (qui définit une tâche de comparaison) comme un des côtés dans la comparaison.

 

Les paramètres qui peuvent être présents dans une section [datasource] sont recensés ci-dessous. Voir les Exemples de source de données dans la prochaine rubrique.

 

type

Paramètre obligatoire. Spécifie le type de la connexion de base de données. Les valeurs valides sont ado, adonet, csv, jdbc, odbc, postgresql, and sqlite.

 

type=sqlite

 

Les connexions de type csv, postgresql, and sqlite sont intégrées et ne nécessitent aucun pilote. Pour d'autres types de base de données, choisir une méthode de connexion de base de données convenant à la machine qui exécutera la tâche de comparaison. Ce type de connexions exige que les pilotes de base de données correspondants soient installés sur la machine. Pour plus d'informations, voir Bases de données prises en charge.

 

chemin d'accès

Spécifie le chemin vers le fichier de base de données. Ce paramètre est applicable pour les fichiers CSV et les bases de données SQLite. Ne pas définir ce paramètre si vous avez défini le paramètre connexion, parce qu'ils sont mutuellement exclusifs.

 

path=C:\Articles.sqlite

path=C:\data.csv

 

connexion

Paramètre conditionnel. Spécifie le string de connexion de base de données.

 

Ne pas définir ce paramètre si vous avez défini le paramètre path, parce qu'ils sont mutuellement exclusifs.

Appeler la commande db-drivers pour consulter des connexions disponibles sur la machine locale, affichées dans un format que vous pouvez copier-coller.

Si vous avez mis sous licence DatabaseSpy, vous pouvez créer une connexion de base de données à partir de là, et puis réutiliser les détails de connexion tels qu'affichés dans la fenêtre Propriétés.

 

SQL Server (ADO)

connection=Data Source=DBSQLSERV;UserID=altova_user;Password=dhjdf84h;

Provider=SQLNCLI11.1;Initial Catalog=NANONULL;Persist Security Info=true

 

DB2 (JDBC)

connection=jdbc:db2://mydb2-105:50000/NANONULL

 

Oracle (JDBC)

connection=jdbc:oracle:thin:@dbora12c:1521:orcl12c

 

PostgreSQL (Native)

connection=my.dbserver.com

 

En ce qui concerne les connexions PostgreSQL natives, la connexion peut aussi être l'adresse IP du serveur de base de données, par exemple, 127.0.0.1.

La base de données et le port d'une connexion PostgreSQL native sont spécifiés dans les options database et port.

 

extend-classpath

Ce paramètre s’applique uniquement aux connexions JDBC. Ceci est optionnel et vous permet d’élargir le classpath Java sur l’appareil sur lequel DiffDog Server est exécuté. Ceci pourrait être utile, par exemple, lorsque vous n’avez pas les moyens ou privilèges de changer la variable d’environnement CLASSPATH du système d’exploitation. Notez qu’il n’est pas nécessaire de définir cette valeur si tous les classpaths requis par la connexion JDBC sont déjà définis par le biais de la variable d’environnement CLASSPATH. Si vous définissez cette valeur, alors elle sera prise en considération en plus de la valeur qui a éventuellement déjà été définie dans la variable d’environnement CLASSPATH.

 

Par exemple, la valeur suivante ajoute deux fichiers .jar files à la classpath afin d’établir la connexion à une base de données IBM DB2 :

 

extend-classpath=C:\jdbc\db2\db2jcc.jar;C:\jdbc\db2\db2jcc_license_cu.jar

 

Les chemins de pilote JDBC définis dans la variable CLASSPATH, ainsi que dans tout chemin de fichier .jar spécifié dans le paramètre extend-classpath est fourni à la Java Virtual Machine (JVM). La JVM décide ensuite quels pilotes utiliser pour établir une connexion. Il est recommandé de garder une trace des classes Java chargées dans la JVM pour ne pas créer de conflits de pilotes JDBC potentiels et éviter des résultats inattendus lors d'une connexion à la base de données.

 

database

Obligatoire et uniquement applicable pour les connexions PostgreSQL natives. Spécifie la base de données de la connexion PostgreSQL.

 

database = ZooDB

 

port

Spécifie le port de données de la connexion à la base de données PostgreSQL. Le port peut être requis par certaines connexions à la base de données PostgreSQL.

 

separator

Paramètre optionnel. Applicable uniquement pour les sources de données CSV. Indique le séparateur de champ utilisé dans le fichier CSV. S’il n’est pas spécifié, nous partons du fait que le séparateur par défaut est une virgule. Les valeurs valides sont la comma (défaut), tab et semicolon.

 

separator=comma

 

table

Paramètre conditionnel. Spécifie le nom complet de la table de base de données ou des modes à utiliser dans le côté gauche ou droite de la comparaison. Si vous configurez ce paramètre, il ne faut pas définir le paramètre sql, parce qu'ils sont mutuellement exclusifs.

 

Serveur SQL

table=[HR].[dbo].[Employees]

 

IBM DB2

table="ALTOVA_ADMIN"."customers"

 

Astuce : Si vous avez installé DatabaseSpy, vous pouvez aisément obtenir le nom de table complet en cliquant avec la touche de droite sur la table dans le Navigateur en ligne, puis en sélectionnant Afficher dans le nouvel Éditeur SQL | Chemin depuis le menu contextuel.

 

key-columns-by-name

Pour chaque table, mode et recordset, il doit y avoir au moins une colonne qui garantit le caractère unique de chaque ligne. Cette colonne (ou plusieurs colonnes) sera appelée ensuite la colonne « clé ». Si la table a une clé primaire, une colonne clé existe et le caractère unique de la ligne est garanti. Sinon, nous vous recommandons de spécifier une ou plusieurs colonnes qui doivent être traitées en tant que colonnes « clé ». Les colonnes ne doivent pas nécessairement faire partie d'une vraie clé primaire ou unique sur la table.

 

key-columns-by-name="guid"

key-columns-by-name="first_name","last_name","email"

 

La définition des colonnes "key" est optionnelle, mais nous vous recommandons fortement de le faire. Si vous ne définissez pas les colonnes "key", l'application les déterminera automatiquement, mais il se peut que cela ne fonctionne pas correctement pour tous les pilotes de base de données. De plus, la détection fonctionne uniquement pour les tables ou les modes, donc il est recommandé que vous définissez les colonnes "clés" explicitement si vous utilisez les requêtes SQL qui retournent des valeurs ou des résultats calculés retournés par des procédures stockées.

 

Si vous spécifiez les colonnes de clé, le nombre de colonnes de clé doit être le même pour la source de données "gauche" et "droite". Par exemple, si vous spécifiez deux colonnes clé pour la source de données gauche et uniquement une colonne clé pour la source de données droite, la comparaison échouera avec une erreur.

 

Dans le cas des fichiers CSV, vous pouvez utiliser faire référence aux colonnes clés par le nom comme suit :

 

Si la première colonne du fichier CSV contient des noms de colonne, vous pouvez utiliser le nom de la colonne. Par exemple : key-columns-by-name="first","last".

S'il n'y a pas de ligne d'en-tête dans le fichier CSV, vous pouvez utiliser les noms conventionnels c1, c2, c3, etc. où chaque numéro identifie cette colonne respective, par exemple : Par exemple : key-columns-by-name=c1,c2.

 

key-columns-by-ordinal

Vous pouvez spécifier une colonne "clé" sauf par le nom (voir ci-dessus) ou par son nombre ordinal dans la table, en commençant avec 1. Cette option vous permet de spécifier des colonnes clé par leur nombre ordinal.

 

key-columns-by-ordinal=1

key-columns-by-ordinal=1,2,5

 

Note : Si vous spécifiez les colonnes de clé, le nombre de colonnes de clé doit être le même pour la source de données "gauche" et "droite".

 

user

Paramètre conditionnel. Spécifie le nom utilisateur requis pour se connecter à la base de données. Ce paramètre n'est pas nécessaire si la base de données accepte les connexions anonymes, ou si le string de connexion comprend déjà le nom d'utilisateur (voir le paramètre connection).

 

pass

Paramètre conditionnel. Spécifie le mot de passe requis pour se connecter à la base de données. Ce paramètre n'est pas nécessaire si la base de données accepte des connexions anonymes, ou si le string de connexion contient déjà le mot de passe (voir le paramètre de connection).

 

assembly

Cette option est obligatoire pour les connexions ADO.NET. Exécuter la commande db-drivers pour consulter les assemblées .NET disponibles sur la machine locale, affichée dans un format que vous pouvez copier-coller.

 

.NET Framework Fournisseur de données pour SQL Server

assembly=System.Data.SqlClient.SqlClientFactory, System.Data,

Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

 

Fournisseur .NET Framework Data pour IBM i

assembly=IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries,

Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26

 

class

Cette option est obligatoire pour les connexions ADO.NET et JDBC. Exécuter la commande db-drivers pour consulter les pilotes JDBC disponibles sur la machine locale, affichée dans un format que vous pouvez copier-coller.

 

IBM DB2 via JDBC

class=com.ibm.db2.jcc.DB2Driver

 

MySQL via JDBC

class=com.mysql.jdbc.Driver

 

SQL Server via ADO.NET

class=System.Data.SqlClient

 

sql

Paramètre conditionnel. Spécifie une requête SELECT dans la syntaxe de la base de données actuelle. Le recordset extrait par la requête SELECT peut être utilisé en tant que la partie gauche ou droite de la comparaison. Si vous définissez ce paramètre, il ne faut pas définir le paramètre table, parce qu'ils sont mutuellement exclusifs. Si vous spécifiez un appel de procédure stockée, il est attendu que la procédure stockée retourne un recordset, pas uniquement les paramètres de sortie.

 

Requête SELECT

sql="SELECT * FROM employees WHERE a > 5 and b < 6 ORDER BY c"

 

Procédures stockées

sql="EXEC dbo.uspGetEmployeeManagers @BusinessEntityID = 50"

 

has-header-row

Paramètre optionnel. Applicable uniquement pour les fichiers CSV. Les valeurs valides sont true ou false. Si définie comme true, la première ligne du fichier CSV est traitée en tant qu'une colonne d'en-tête et ne prend pas part à la comparaison.

 

has-header-row=true

 

 

© 2019-2025 Altova GmbH