Vous consultez une page technique concernant le logiciel de gestion Mercator. Celle-ci contient des informations spécifiques destinées aux professionnels de Mercator. Souhaitez-vous être redirigés vers des informations plus générales ?


   Ne plus poser cette question

Editeur de code : fonctionnalité de bulk d'un fichier local vers une table SQL

0000002407     -      14/12/2016

Dans l’éditeur de code SQL, il est possible d'effectuer un bulk load d'une table contenue dans un fichier local (Excel ou XML) vers une table du serveur SQL. Ceci se fait via ce bouton :

Le processus débute par la sélection d'un fichier local. Si le fichier est au format Excel, il doit répondre au format habituel de Mercator (la première ligne doit contenir le nom des colonnes). Il est possible de visualiser le contenu du fichier importé. Ensuite, Mercator propose de déterminer les paramètres qui vont permettre la création de la table SQL de destination :

  • "Colonne Destin." permet de spécifier le nom de colonne souhaité pour la table SQL
  • "Table de destination" permet de choisir le nom de la table SQL. Par défaut, ce nom est égal au nom du fichier importé.

Notion de classement (collation)

En SQL, les champs de type caractère répondent à un classement (collation). Par défaut, on ne peut comparer des chaînes de caractères que de même classement. C'est pourquoi, Mercator permet de spécifier le classement de toutes les colonnes de type caractère dans la troisième colonne de cet écran.Cette valeur est toujours initialisée au classement par défaut pour la base de données et ne devrait pas être modifiée. Si on importe une table qui a une structure semblable à une table standard de Mercator, alors on peut fixer que le classement de chaque champ de la table bulkée sera identique, pour les champs de même nom, à ceux de cette table standard. Pour cela, il suffit de choisir cette table dans le déroulant "Classement de cette table". Par exemple : on bulke une table reprenant essentiellement des champs de la table STOCK, alors on choisit dans le déroulant en question "STOCK".

La fixation correcte du classement est essentielle en cas de jointures entre tables sur des champs de type caractère.

Notions de connexions et de transactions SQL

Chaque onglet SQL de l'éditeur de commandes dispose de sa propre connexion au serveur SQL. Dès lors, une table temporaire (nom commençant par #) bulkée dans un onglet peut ne pas être visible lors de l'exécution d'une requête SQL dans un autre onglet. (Elle le sera toutefois si le pool de connexions SQL géré par le framework .net a attribué la même connexion physique)

Si une transaction est en cours dans cet onglet, alors la table sera bulkée dans cette transaction. La table ne sera dès lors définitive que lors du commit de cette transaction. Elle sera détruite en cas de rollback.

Suppression des tables bulkées

Par défaut, lors de la fermeture d'un onglet SQL ayant fait l'objet d'un bulk load d'une ou plusieurs tables, Mercator propose de supprimer ces tables; ceci dans le but d'inciter l'utilisateur à ne pas surchager la base de données avec des tables qui ne seraient plus utiles. Bien entendu, il est toujours possible de refuser, table par table, cette suppression afin de les maintenir définitivement dans la base de données.

Remarque importante

Le bulk load ne donne aucune garantie sur la qualité des données chargées dans la base de données.Cette possibilité ne doit donc pas être perçue comme un moyen de charger "tout et n'importe quoi". Nous rappellons ici que notamment tous les enregistrements relatifs à des documents de la gestion commerciale, à des inventaires, à des transferts de dépôts, à des écritures comptables, à des actions du CRM, ... ne doivent jamais être chargés via ce moyen mais toujours en faisaint usage des engines correspondants.

 

Exemple d'utilisation : Comment effectuer un transfert du paramétrage d'un signalétique d'un Mercator vers un autre ?