Altova DiffDog Server 2024 

Avant de pouvoir effectuer une comparaison de données tabulaire provenant d'une base de données, une source données qui inclut les détails de connexion de base de données et d'autres paramètres de configuration doivent être configurés. 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.

 

Pour configurer une source de données, ouvrir le fichier de configuration client et ajouter une nouvelle section [datasouce:<name>], où <name> est le seul nom avec lequel vous souhaitez identifier cette source de données. Les paramètres qui peuvent être présents dans une section [datasource] sont recensés ci-dessous.

 

Vous pouvez aussi ajouter des sources de données dans le fichier de configuration de 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é. Néanmoins, veuillez noter que les connexions du côté serveur qui requièrent une authentification Windows pour des bases de données comme SQL Server peuvent rencontrer des problèmes dans ce cas, parce que le service DiffDog Server est exécuté en tant qu'un utilisateur séparé qui peut ne pas avoir 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 — le DiffDog Command Line Client est exécuté en tant que l'utilisateur exécutant la commande data-diff.

 

Comme indiqué précédemment, 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.

 

type

Paramètres obligatoires. Spécifie le type de la connexion de base de données. Les valeurs valides sont : ado, adonet, csv, jdbc, odbc, postgresql et sqlite. Exemple :

 

type=sqlite

 

Les connexions de type csv, postgresql et 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 Base de données prises en charge.

 

path

Ce paramètre 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 connection, parce qu'ils sont mutuellement exclusifs.

 

path=C:\Articles.sqlite

SQLite

path=C:\data.csv

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.

 

connection=Data Source=DBSQLSERV;User ID=altova_user;Password=dhjdf84h;Provider=SQLNCLI11.1;Initial Catalog=NANONULL;Persist Security Info=true

SQL Server (ADO)

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

DB2 (JDBC)

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

Oracle (JDBC)

connection=my.dbserver.com

PostgreSQL (Native)

Note:En ce qui concerne les connexions PostgreSQL natives, la connection 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.

 

Appeler la commande db-drivers pour consulter des connexions disponibles sur la machine locale, affichées dans un format que vous pouvez copier-coller. De plus, si vous avec un DatabaseSpy mis sous licence, vous pouvez créer une connexion de base de données à partir de là, et puis de réutiliser les détails de connexion tels qu'affichés dans la fenêtre Propriétés.

 

extend-classpath

Ce paramètre est applicable seulement pour les connexions JDBC. Il est optionnel et permet d'élargir le chemin de la classe 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 modifier la variable d'environnement CLASSPATH du système d'exploitation. Veuillez noter qu'il n'est pas nécessaire de définir cette valeur si tous les chemins de la classe 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, elle sera prise en considération en plus de la valeur qui pourrait déjà être définie dans la variable d'environnement CLASSPATH. Par exemple, la valeur suivante ajoute deux fichiers .jar au chemin de la classe afin d'établir une connexion à une base de données IBM DB2 :

 

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

 

 

Les chemins d'accès du pilote JDBC définis dans la variable CLASSPATH, ainsi que tout chemin de fichier .jar spécifié dans le paramètre extend-classpath sont tous fournis à Java Virtual Machine (JVM). JVM décide ensuite quels pilotes seront utilisés afin d'établir une connexion. Il est recommandé de suivre les classes de Java téléchargées dans JVM de façon à ne pas créer de conflits potentiels de pilote JDBC et d'éviter des résultats non attendus en se connectant à 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

Paramètres conditionnels. Spécifie le port de la connexion de base de données. Le port peut être requis par certaines connexions de base de données.

 

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é, le séparateur par défaut sera considéré être la virgule. Les valeurs valides sont la virgule (default), tab, et le poin-virgule.

 

separator=comma

 

table

Paramètres conditionnels. 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. Exemples :

 

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

SQL Server

table="ALTOVA_ADMIN"."customers"

IBM DB2

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. Exemples :

 

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 de clé pour la source de données gauche et une seule colonne de clé pour la source de données de droite, la comparaison échouera avec une erreur.

 

Dans le cas de fichiers CSV, vous pouvez vous référer au colonnes principales par leur nom comme suit :

 

Si la première ligne du fichier CSV contient les noms de colonne, vous pouvez utiliser le nom de 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 c1c2c3, etc. où chaque numéro identifie cette colonne respective, 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. Exemples :

 

key-columns-by-ordinal=1

 

 

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

 

 

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ètres conditionnels. Spécifie le nom d'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ètres conditionnels. 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. Exemples :

 

assembly=System.Data.SqlClient.SqlClientFactory, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

Fournisseur de données .NET Framework pour SQL Server

assembly=IBM.Data.DB2.iSeries.iDB2Factory, IBM.Data.DB2.iSeries, Version=12.0.0.0, Culture=neutral, PublicKeyToken=9cdb2ebfb1f93a26

Fournisseur de données .NET Framework pour IBM i

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.

 

 

class

Cette option est obligatoire pour les connexions ADO.NET et JDBC. Exemples :

 

class=com.ibm.db2.jcc.DB2Driver

IBM DB2 via JDBC

class=com.mysql.jdbc.Driver

MySQL via JDBC

class=System.Data.SqlClient

SQL Server via ADO.NET

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.

 

sql

Paramètres conditionnels. 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. Exemples :

 

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

Requête SELECT

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

Procédure stockée

 

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.

 

has-header-row

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

 

has-header-row=true

© 2017-2023 Altova GmbH