menu
  Home  ==>  articles  ==>  bdd  ==>  paradox_via_ado   

Paradox via ADO - John COLIBRI.

  • résumé : comment gérer des tables Paradox en utilisant les composants d'accès ADO de Delphi
  • mots clé : Paradox - ADO - tAdoConnection - tAdoDataSet
  • logiciel utilisé : Windows XP personnel, Delphi 6.0, Paradox 7
  • matériel utilisé : Pentium 2.800 Mhz, 512 Meg de mémoire, 250 Giga disque dur
  • champ d'application : Delphi 1 à 5, Delphi 6, Delphi 7, Delphi 2006, Turbo Delphi, Delphi 2007 sur Windows
  • niveau : développeur Delphi
  • plan :


1 - Paradox Via ADO

Un de nos clients utilise Paradox avec le BDE (Borland Data Engine), et souhaite se connecter en utilisant la suite de composants ADO. Cet article présente simplement comment établir ce type de connexion.




2 - Connexion Paradox ADO

2.1 - Connexion par le BDE

La façon traditionnelle de se connecter à Paradox est d'utiliser le BDE:

paradox_via_bde

Soit:

  • optionnellement un tDatabase explicite, et une tSession
  • un tQuery pour les requêtes SQL, ou un tTable pour le portage depuis dBase
  • pour la partie visuelle, des tDataSources et des composants visuels: tDbGrid, tDbEdit etc


2.2 - L'Architecture ADO

ADO a été conçu pour pouvoir accéder à tout type de source de données, allant du fichier .TXT ou .HTML aux bases de données réparties Oracle.

Vaste programme ! Et ceci explique la complexité des composants qui constituent la couche ADO. En tout une cinquantaine de composants.

Heureusement Delphi a regroupé ces composants en simplifiant l'interface que nous pouvons utiliser.

Schématiquement cela ressemble à ceci:

ado_architecture

Soit:

  • un tAdoConnection qui permet de se relier aux données à traiter, et permettant aussi de gérer les transactions
  • un tAdoCommand, avec ou sans tParameters, contenant en général la requête Sql
  • un tAdoDataSet, qui a les fonctionalités du tDataSet (Open, Close, Next etc), ainsi qu'une propriété Connection et Command
  • à partir de là ce sont les composants traditionnels: tDataSources et tDbGrid, tDbEdit etc


De façon plus précises, voici un diagramme de classe UML représentant l'ensemble:

ado_uml_class_diagram



2.3 - La chaîne de connexion ADO

Le plus difficile pour utiliser ADO est de fournir la chaîne de connexion. Celle ci contient naturellement les paramètres pour désigner la source de données:
  • adresse IP si nécessaire
  • chemin et éventuellement nom du fichier contenant les données
  • peut être des noms d'utilisateurs et des mots de passe
Beaucoup de "si" et de "mais", qui proviennent naturellement des nombreuses sources de données très différentes les unes des autres.

Par conséquent impossible de taper directement la valeur de tAdoConnection.ConnectionString. Delphi propose bien un Wizard pour faciliter la construction de la chaîne. Mais malgré tout, il faut encore fournir des paramètres que personne ne peut inventer, même en faisant preuve de beaucoup d'imagination.

Pour nous tirer d'affaire nous pouvons utiliser:

  • soit des projets de démonstration trouvés ici ou là
  • soit Google, où il existe des pages de "connectionstrings"
  • soit les newsgroups ou quelque bon samaritain voudra bien vous fournir la chaîne magique.


2.4 - Connection Paradox ADO

Voici donc comment procéder pour Paradox
   copiez (pour effectuer le test) quelques Tables Paradox (extensions .DB, par exemple CUSTOMER.DB) situées dans le répertoire des démonstrations Delphi dans un répertoire pour votre essai:

 
C:\Program Files\Fichiers communs\Borland Shared\Data\

   créez une nouvelle application Delphi
   de l'onglet ADO de la Palette sélectionnez tAdoConnection:

ado_connection

   dans l'Inspecteur d'Objet, sélectionnez ConnectionString et cliquez sur l'ellipse ...
   le dialogue de construction de la chaîne de connexion est affiché:

ado_connectionstring_dialog

   cliquez "Build..."
   la liste des fournisseurs est présentée:

ado_oledb_providers

   sélectionnez "Microsoft Jet 4.0 Ole Db Provider". Le mot important est JET qui est le nom générique du moteur d'accès

   cliquez "Suivant >>"
   l'onglet "Connexion" est affiché

ado_connection_path

   dans "1 sélectionnez le nom de base de données", fournissez le chemin des tables Paradox. Dans notre cas

 
C:\programs\fr\bdd\paradox_via_ado\_data\

   puis, pour Paradox:
  • sélectionnez l'onglet "Toutes"
  • puis la ligne "Extended Properties ..."
  • puis cliquez "Modifier la valeur"
   le dialogue de saisie des types de moteurs Sql est présenté:

ado_source_property

   pour Paradox, tapez:

 
Paradox 7.x

et cliquez "Ok"

   retournez dans l'onglet "Connexion"

   la valeur Paradox a bien été entrée

   cliquez "Tester la connection"

ado_successful_connection

   cliquez "Ok", "Ok", "Ok"


Pour info, la valeur de la ConnectionString ainsi construite a la valeur suivante (en une seule ligne):

 
Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=C:\programs\fr\bdd\paradox_via_ado\_data;
Extended Properties=Paradox 7.x;
Persist Security Info=False



2.5 - Afficher des données

Pour vérifier notre connextion:
   dans l'Inspecteur d'Objet, sélectionnez LoginPrompt et basculez la valeur sur False (pour éviter à avoir à taper un mot de passe)
   basculez Connected sur True
   s'il n'y a aucune exception, cela signifie que la connexion a réussi


Puis nous ajoutons les composants pour afficher une Table:
   sélectionnez un tAdoDataDataSet

tadodataset

et posez-le sur la Forme

   sélectionnez sa propriété Connection et reliez-la à AdoConnection1
   sélectionnez sa propriété CommandText, et cliquez sur l'ellipse ...
   le dialogue de requête Sql est présenté, avec, dans la ListBox des Tables les Tables que nous avons placées dans notre répertoire:

ado_sql_editor

   cliquez une Table, "Add table", les colonnes (par exemple "*") et "Add Field". Dans notre cas la requête est:

 
SELECT *
  FROM customer

   sélectionnez Active et basculez sa valeur sur True

   posez un tDataSource sur la Forme

   voici le résultat:

display_paradox_with_ado




3 - Commentaires sur l'utilisation d'ADO et Paradox

3.1 - Motivations

La raison majeure qui pousse les développeurs à utiliser Paradox avec ADO est de pouvoir conserver des données Paradox tout en remplaçant le BDE par ADO.

Le BDE souffre en effet des défauts suivants:

  • tout d'abord il est "deprecated". Ce mot inquiétant signifie simplement que depuis 2001 Codegear ne touche plus au produit. Mais il est tout de même utilisables par toutes les versions, et donc, malgré son remplacement par dBExpress ou ADO en 2001, il figure toujours dans les versions Delphi, y compris la dernière version de Rad Studio 2007
  • au niveau fonctionnement, quelques problèmes de gestion de caches peuvent se manifester. Ceux ci surviennent surtout lorsqu'une application provoque des erreurs en mode conception, et que le développeur utilise d'Explorateur de bases de données
  • et son plus gros défaut est la lourdeur du déploiement. Chaque application fournie aux client doit utiliser le BDE. Certes il est possible de créer des scripts InstallShield, mais cela prend du temps


Pour Paradox, ADO est alors une bonne alternative. De plus ADO permet une utilisation plus facile d'ASP.



3.2 - Perspectives ADO

Les personnes familières avec Ado.Net reconnaîtront naturellement la filiation entre ADO et ADO.NET: connextion / commandes, composants d'accès pour les requêtes Sql. Nous avons d'ailleurs écrit une série d'articles détaillant l'architecture et l'utilisation d'ADO.NET ou encore Turbo Delphi et Ado. Il existe néanmoins des différences très importantes qui empêcheraient un portage trivial d'ADO vers ADO.Net



Pour les chaînes de connexion, nous avons parlé de Paradox, mais de nombreuses autres possibilités pour le "Microsoft Jet 4.0" existent:

  • Microsoft Jet 1.0, Microsoft Jet 1.1, Microsoft Jet 2.0, Microsoft Jet 3.x, Microsoft Jet 4.x
  • dBASE III, dBASE 4, dBASE 5
  • Excel 3.0, Excel 4.0, Excel 5.0, Excel 8.0, Excel 9.0
  • Exchange 4
  • Lotus WK1, Lotus WK3, Lotus WK4
  • Paradox 3.x, Paradox 4.x, Paradox 5.x, Paradox 7.x
  • Text 1.x
  • Html 1.x


3.3 - Formations et support Paradox / ADO

Côté Paradox, parmi les formations que nous assurons, les formations de bases de données "desktop" avec le BDE utilisent depuis Delphi 1 soit dBase, soit Paradox. Nous accueillons à ce titre des stagiaires ayant en général à maintenir des applications développés avec ces moteurs.

Nous organisons aussi, sur demande, des formations ADO, en utilisant en général Access, Sql Server, voire Excel. Mais, comme indiqué ici, Paradox est naturellement possible.

En fait, depuis quelques années, nous assurons de plus en plus de formations correspondant à des besoins spécifiques que des formations générales figurant au catalogue de l'Institut Pascal. Ceci correspond à la fois à des besoins de portage de projets écrits avec les premières versions de Delphi ainsi qu'à l'évolution des compétences d'équipes de développeurs vers de nouvelles technologies.



Côté développement, nous assistons aussi certains clients dans le cadre de support ou développement sur mesure

  • soit pour migrer de Paradox vers d'autres moteurs Sql (Interbase / Firebird, Sql Server, Oracle etc)
  • soit, en conservant les données Paradox, pour utiliser Ado comme composants d'accès
Le but de ce type de développement étant de conserver au maximum les données et la logique métier contenus dans les applications Paradox. Et le traitement va de la simple conversion des fichiers de données qui peut être en grand partie automatisée, à une extraction des règles métier, voir restructuration de l'application.




4 - Télécharger le code source du projet Delphi

Vous pouvez télécharger: Ce .ZIP qui comprend:
  • le .DPR, la forme principale, les formes annexes eventuelles
  • les fichiers de paramètres (le schéma et le batch de création)
  • dans chaque .ZIP, toutes les librairies nécessaires à chaque projet (chaque .ZIP est autonome)
Ces .ZIP, pour les projets en Delphi 6, contiennent des chemins RELATIFS. Par conséquent:
  • créez un répertoire n'importe où sur votre machine
  • placez le .ZIP dans ce répertoire
  • dézippez et les sous-répertoires nécessaires seront créés
  • compilez et exécutez
Ces .ZIP ne modifient pas votre PC (pas de changement de la Base de Registre, de DLL ou autre). Pour supprimer le projet, effacez le répertoire.

La notation utilisée est la notation alsacienne qui consiste à préfixer les identificateurs par la zone de compilation: K_onstant, T_ype, G_lobal, L_ocal, P_arametre, F_unction, C_lasse. Elle est présentée plus en détail dans l'article La Notation Alsacienne



Comme d'habitude:

  • nous vous remercions de nous signaler toute erreur, inexactitude ou problème de téléchargement en envoyant un e-mail à jcolibri@jcolibri.com. Les corrections qui en résulteront pourront aider les prochains lecteurs
  • tous vos commentaires, remarques, questions, critiques, suggestion d'article, ou mentions d'autres sources sur le même sujet seront de même les bienvenus à jcolibri@jcolibri.com.
  • plus simplement, vous pouvez taper (anonymement ou en fournissant votre e-mail pour une réponse) vos commentaires ci-dessus et nous les envoyer en cliquant "envoyer" :
    Nom :
    E-mail :
    Commentaires * :
     

  • et si vous avez apprécié cet article, faites connaître notre site, ajoutez un lien dans vos listes de liens ou citez-nous dans vos blogs ou réponses sur les messageries. C'est très simple: plus nous aurons de visiteurs et de références Google, plus nous écrirons d'articles.



5 - L'auteur

John COLIBRI est passionné par le développement Delphi et les applications de Bases de Données. Il a écrit de nombreux livres et articles, et partage son temps entre le développement de projets (nouveaux projets, maintenance, audit, migration BDE, migration Xe_n, refactoring) pour ses clients, le conseil (composants, architecture, test) et la formation. Son site contient des articles avec code source, ainsi que le programme et le calendrier des stages de formation Delphi, base de données, programmation objet, Services Web, Tcp/Ip et UML qu'il anime personellement tous les mois, à Paris, en province ou sur site client.
Created: jan-04. Last updated: mar-2020 - 250 articles, 620 .ZIP sources, 3303 figures
Contact : John COLIBRI - Tel: 01.42.83.69.36 / 06.87.88.23.91 - email:jcolibri@jcolibri.com
Copyright © J.Colibri   http://www.jcolibri.com - 2001 - 2020
Retour:  Home  Articles  Formations  Développement Delphi  Livres  Pascalissime  Liens  Download
l'Institut Pascal

John COLIBRI

+ Home
  + articles_avec_sources
    + bases_de_donnees
      + programmation_oracle
      + interbase
      + sql_server
      + firebird
      + mysql
      + xml
      – paradox_via_ado
      – mastapp
      – delphi_business_objects
      – clientdataset_xml
      – data_extractor
      – rave_report_tutorial
      – visual_livebindings
      – migration_bde
    + web_internet_sockets
    + services_web_
    + prog_objet_composants
    + office_com_automation
    + colibri_utilities
    + uml_design_patterns
    + graphique
    + delphi
    + outils
    + firemonkey
    + vcl_rtl
    + colibri_helpers
    + colibri_skelettons
    + admin
  + formations
  + developpement_delphi
  + présentations
  + pascalissime
  + livres
  + entre_nous
  – télécharger

contacts
plan_du_site
– chercher :

RSS feed  
Blog

Formation Delphi complete L'outil de développpement, le langage de programmation, les composants, les bases de données et la programmation Internet - 5 jours