Page suivante Page précédente Table des matières

8. Utiliser le SGBD Xbase dans un environnement Linux

Gary Kundel gkunkel@startech.keller.tx.us

8.1 Introduction

La structure de fichier Xbase est connue depuis assez longtemps et a été un des premiers outils SGBD pour les micro-ordinateurs. Il est devenu un standard de fait dans l'industrie pour les bases de données textes et il est supporté par beaucoup de produits comme le Borland Database Engine, FoxPro de Microsoft, Clipper, Codebase de Sequitor ainsi que d'autres. Le format de fichier Xbase sera parmi nous encore un certain temps.

Le Site Web de Startech à http://www.startech.keller.tx.us/xbase/xbase.html maintient les sources libres d'une librairie C++, du domaine public, pour accéder, dans un environnement multi-utilisateur, au type de fichiers de données Xbase.

La librairie reconnait le verrouillage automatique d'enregistrement, les champs mémo (aussi bien les versions dBase III et dBase IV), et les index du style .NDX. Il y a aussi une API pour interfacer la librairie à un serveur web Apache et fournir l'accès aux bases de données aux pages web. Plusieurs exemples de programmes fournissent une base de travail pour créer, parcourir et mettre à jour des bases de données. Il y a des exemples qui montrent comment utiliser la librairie avec un Serveur Web Apache et utiliser la librairie conjointement à la librairie wxWindows. Quelques lecteurs de cet article reconnaitront la librairie wxWindows comme une librairie GUI (Graphical User Interface, Interface Graphique Utilisateur) C++ multi-plateforme.

8.2 Configuration requise

Pour pouvoir utiliser la librairie SGBD Xbase, vous aurez besoin d'un compilateur C/C++. La librairie originale a été conçue avec une distribution Slackware et le compilateur GNU du domaine public, mais il y a des exemples sur le site pour utiliser la librairie sur d'autres plateformes comme Windows, SUN et VMS.

8.3 Obtenir les sources

Pour installer la librairie Xbase dans le répertoire /usr/local, exécuter les commandes suivantes : cd /usr/local et mkdir xbase. L'étape suivante est de positionner les permissions de l'arborescence Xbase. Votre site peut avoir des conventions particulières, sur les droits d'accès des répertoires, auquelles vous devrez vous référer. Dans le cas contraire, la commande "chown VOTREIDUTILISATEUR.users xbase", puis "chmod 755 xbase" vous permettra de continuer.

Maintenant créez une arborescence et copiez les sources dedans : "cd xbase", "mkdir src", "cp /home/of/xbase.tar.gz /usr/local/xbase/src", "cd /usr/local/xbase/src", "gunzip xbase.tar.gz" et finalement "tar -xvf xbase.tar". A ce moment là le code source devrait se trouver dans le répertoire /usr/local/xbase/src et prêt pour construire la librairie.

8.4 Construire la librairie

Avant de construire la librairie, revoir le fichier options.h. Ce fichier contient tous les paramètres et bascules de configuration que vous voulez ou avez besoin de changer selon ce que vous essayez de faire. Pour construire une librairie DLL, tapez "make dll". Pour construire une librairie statique, tapez "make all".

Cela devrait se compiler sans erreur. Les erreurs à ce moment là ont souvent pour origine les fichiers d'entête .h en cours d'utilisation sur votre site. Si vous rencontrez des erreurs à ce moment là, prévenez xbase@startech.keller.tx.us pour vous aider à construire la librairie.

8.5 Programme d'exemple

Cet exemple vous montre un programme simple qui crée une base de données et un index.


/*  exemple1.cpp  */
#include "xbase.h"
main()
{
  Schema MyRecord[] = 
  {
    { "FIRSTNAME", CHAR_FLD,     15, 0 },
    { "LASTNAME",  CHAR_FLD,     20, 0 },
    { "BIRTHDATE", DATE_FLD,      8,  0 },
    { "AMOUNT",    NUMERIC_FLD,   9,  2 },
    { "SWITCH",    LOGICAL_FLD,   1,  0 },
    { "FLOAT1",    FLOAT_FLD,     9,  2 },
    { 0,0,0,0 }
  };

  /* definir les classes */
  XBASE x;                      /* initialize xbase  */
  DBF MyFile( &x );             /* classe pour table   */
  NDX MyIndex( &MyFile );       /* classe pour index 1 */

  SHORT rc;                     /* code retour       */

  if(( rc = MyFile.CreateDatabase( "MYFILE.DBF", MyRecord, OVERLAY )) != NO_ERROR )
     cout << "\nErreur de creation de la base de donnees = " << rc << "\n";
  else
  {
     /* definir un index simple */
     if(( rc = MyIndex1.CreateIndex( 
       "MYINDEX.NDX", "LASTNAME", 0, 1 )) != NO_ERROR )
        cout << "\nErreur de creation de l'index 1 = " << rc << "\n";
  }
  MyFile.CloseDatabase();   /* Clore la BD et les indexes associés */
  return 0;
}     

En supposant que vous ayez mis ce programme source dans le répertoire /usr/local/xbase/myproj, taper "g++ -c -I/usr/include -I/usr/src/linux/include/asm-i386 -I../src exemple1.cpp" pour compiler le programme et taper "g++ -o exemple1 exemple1.o ../src/xbase.a" pour éditer les liens du programme. Le répertoire asm-i386 dans la ligne d'include ci-dessus est pour linux sur une plateforme Intel. Les autres plateformes requierent le répertoire "include" adéquat.

8.6 Conclusion

En conclusion, je voudrais dire que, bien que la librairie Xbase ne soit pas une solution complète 100 % Xbase, c'est une librairie stable et fiable capable de supporter beaucoup des caractéristiques demandées aux bases de données. Si vous cherchez des librairies de base de données en général, ou avez besoin d'accéder à des fichiers Xbase en particulier, essayez donc le SGBD Xbase. Si vous êtes un programmeur C débutant dans la programmation orientée objet, le SGBD Xbase est facile à apprendre et vous aidera dans votre transition vers le monde de la programmation objet. Si vous n'avez jamais programmé en C ou en C++ auparavant, cette librairie devrait vous fournir suffisement d'exemples complets pour vous permettre de commencer à programmer en C/C++ avec confiance.


Copyright 1998, Gary Kunkel - Adaptation française : Frédéric Gacquer (Neuronnexion)


Page suivante Page précédente Table des matières