Utiliser des bases de données Paradox avec le BDE sous Windows 10

J'ai eu à intervenir sur plusieurs projets utilisant des tables Paradox depuis le début de l'année et ça fonctionnait jusqu'à une certaine mise à jour de Windows. L'OS de Microsoft nous empêche désormais de travailler directement avec le Borland Database Engine sans risque de plantage.

Plutôt que revenir à Windows Seven ou Windows XP pour travailler sur ces projets, surtout dans le cadre d'une migration vers FireDAC, il fallait trouver une solution et que ça tourne sous Windows 10 dans sa dernière mouture.

De mon côté c'est maintenant opérationnel alors voici ce que vous devez faire si vous êtes dans le même cas que moi (en environnement de production ou en "simple" maintenance applicative sur une vieille application sur votre PC de développement).

Juste avant d'attaquer sur le BDE, je vous rappelle que la dernière version de l'IDE compatible avec Windows XP est la version XE de Delphi et C++Builder. Au delà rien n'est garanti.
(petit correctif suite à un message de Nabil K sur LinkedIn : Delphi XE5 fonctionne correctement sous Windows XP)

Pour en revenir au BDE, il faut déjà l'installer sur votre ordinateur de bureau. Il n'est en effet plus préinstallé en même temps que Delphi ou RAD Studio.

Vous devez donc télécharger l'installateur pour votre version de Delphi depuis Code Central. Suivez ensuite la procédure d'installation du BDE Engine et des packages de composants dans l'IDE.

Si vous désirez juste utiliser le BDE sur un environnement de production vous devez récupérer l'installeur redistribuable. Il est dispo dans l'arborescence du BDE sur votre ordinateur de développement.

L'installation faite vous allez devoir configurer le BDE pour fonctionner correctement sur votre ordinateur.

Le programme d'administration se trouve dans le dossier C:\Program Files (x86)\Common Files\Borland Shared\BDE Allez-y avec l'explorateur Windows.

Pour que la configuration se passe bien, exécutez le programme bdeadmin.exe en tant qu'administrateur (depuis le menu contextuel). Sans ça vous vous retrouverez avec des plantages sur l'ajout de sources de données ou la prise en compte des paramètres.

Pour utiliser des bases de données Paradox vous devez changer le chemin dans lequel le BDE stocke la liste des utilisateurs en cours. Par défaut on a une erreur à l'ouverture des tables disant qu'on ne peut pas enregistrer le fichier c:\pdoxusrs.net puisque Windows empêche toute écriture à la racine du disque système.

Rendez-vous dans l'onglet Configuration puis sur Configuration / Pilotes / Natif / PARADOX et modifiez la valeur de NET DIR.
Si vous êtes en local, indiquez simplement c:\windows\temp
Si vous êtes en accès multiutilisateurs, mettez un chemin d'accès réseau accessible en lecture/écriture.

Pour que le BDE ne plante pas avec les erreurs d'initialisation $2501 ou $21D0, il faut modifier ses paramètres de mémoire. Et là je remercie LK pour son article de juin 2017 sur ce sujet.

Allez dans Configuration / System / INI pour modifier les deux clés suivantes en fonction de la configuration de l'ordinateur :

  • SHAREDMEMLOCATION doit être à 0x2BDE si vous avez 2Go de RAM, 0x5BDE si vous avez 4 Go de RAM, 0x7BDE si vous avez 8 Go de RAM.
  • SHAREDMEMSIZE doit correspondre en Ko à votre quantité de RAM donc 2048, 4096 ou 8192.

La machine virtuelle sur laquelle je travaille n'ayant que 4Go de RAM, je n'ai testé que les valeurs correspondantes. Dites moi si vous avez une autre configuration et que ça ne passe pas chez vous.

Pensez à appliquer vos modifications par un Ctrl+A ou en utilisant le menu contextuel de la souris.

Reste maintenant à configurer vos connexions aux bases de données dans l'onglet Bases de données.

Les bases PARADOX sont en fait des dossiers de l'ordinateur dans lesquels sont stockées les fichiers des données, leurs index et les tables temporaires éventuelles. Pour créer un accès à une base vous devez donc indiquer les paramètres suivants:

  • Créez un alias de type STANDARD
  • Laissez le driver par défaut à PARADOX mais vous pouvez toujours utiliser DBASE, FOXPRO ou un ASCIIDRV.
  • Activez ou pas le BCD selon vos besoins.
  • Indiquer le chemin d'accès menant à vos tables.
  • Enfin, renommez votre source de données. C'est ce nom qui servira d'alias sur les composants TDatabase et TTable dans Delphi.

Reste plus qu'à lancer Delphi ou RAD Studio et bosser comme vous l'auriez fait avant Windows 10... mais n'oubliez pas que le BDE est DEPRECATED. Il ne fonctionnera pas éternellement, donc une migration vers FireDAC est fortement conseillée (et un changement de base de données en même temps puisqu'il n'existe pas de driver Paradox pour FireDAC).


Mug Toucan DX dans la baie de RioMug carte postale Sydney