Changer de base de données et migrer vos données avec Windev

Windev offre une fonctionnalité essentielle pour un environnement de développement : celle de pouvoir se connecter et communiquer avec de nombreux types de base de données (relationnelles) différentes : SQL Server, Oracle, MySQL, MariaDB, PostgreSQL, Access, etc. Pour cela, Windev utilise, depuis sa création, un système nommé "Analyse" de représentation des données. Il s'agit d'une couche intermédiaire entre le code et la base de données qui décrit la structure des données, quel que soit le type de base de données. C'est un schéma, proche du MCD de la méthode MERISE, qui décrit les données à partir de leur description réelle dans chaque moteur de base de données.

Une analyse contient des connexions que vous pouvez configurer. Les connexions utilisent soit des drivers, type OLEDB, ODBC, soit des accès natifs proposés par PCSOFT l'éditeur de Windev. 

L'utilisation de données en HFSQL étant natif de Windev, il n'y pas besoin de driver pour ce type de base de données. L'un des avantages majeurs de travailler sur des données HFSQL est de bénéficier de l'outil de synchronisation des données. Cela permet de faire évoluer la structure des données et de mettre à jour facilement vos bases de données, surtout si elles sont déployées en de nombreuses instances. Pas besoin de développer des scripts de mise à jour à exécuter sur chaque serveur de base de données. L'autre avantage est aussi la gratuité du serveur HFSQL.


Pour les données provenant de base autres que HFSQL, il faut mettre à jour l'analyse à chaque évolution de la structure de la base, sinon les applications développées avec Windev ne fonctionneront plus.

Du côté de la programmation, les accès natif permettent globalement de programmer sur des bases de données autres que HFSQL, avec les mêmes instructions que pour HFSQL. À savoir les instructions HAjoute, HModifie, etc.

Cela permet à des développeurs Windev, de programmer dans leur langage habituel, sans connaitre le langage SQL, qui est généralement celui utilisé dans toutes les autres bases de données autres que HFSQL. Sinon, pour les développeurs habitués au langage SQL, il vaut mieux faire du SQL bien évidemment.

Souvent, les développeurs Windev sont confrontés à des migrations de base de données. En effet, puisque que Windev est capable de fonctionner avec différentes base de données, il est courant de vouloir faire fonctionner une application sur des bases de données différentes. Par exemple une version de l'application sur HFSQL et une autre sur SQL Server. Ou encore, de faire évoluer une application qui fonctionnait avec HFSQL pour la faire fonctionner avec d'autres bases des données ou inversement.

Deux problématiques se posent alors : d'une part, transférer des données d'un système de base de données vers un autre. D'autre part, faire fonctionner l'application aussi bien sur une base HFSQL que sur un autre type de base de données.

Si vous avez utilisé les ordres classiques de Windev, c'est-à-dire les ordres HAjoute, HModifie, Hlitrecherchepremier, etc., vous rencontrerez probablement des problèmes sur certaines tables, pour certaines colonnes, souvent les colonnes de date et heures. En effet, les accès natifs ou les drivers font des conversions qui dépendent des types des colonnes. Il y a souvent des problèmes sur le type Date et heure. Vous aurez aussi des problèmes avec les memos binaires. Si vous programmez en SQL, vous rencontrerez d'autres problèmes, car Windev utilise une syntaxe spécifique pour HFSQL qui n'est pas complètement compatible avec les versions de SQL des autres bases de données. Il faudra donc certainement faire des adaptations.

Au final, changer de type de base de données peut nécessiter pas mal d'adaptations du code en WDLangage dans Windev, Webdev ou Windev Mobile.

Pour vos projets Windev avec d'autres types de bases de données que HFSQL, notamment lors de migrations, contactez-nous sur info@sealog.info.


Commentaires