08 février 2011
publié par 
L'ouverture d'un fichier de données au niveau du système d'exploitation est coûteuse en temps. En effet, le système doit mettre en place bon nombre de mécanismes pour assurer par la suite les entrées/sorties (allocation, partage réseau, cache ...).

Pour optimiser le lancement des applications, il est donc déconseillé d'effectuer une ouverture systématique de tous les fichiers en appelant l'une des fonctions suivantes :
HOuvre("*")
HCréationSiInexistant("*")

Pour cela le moteur HFSQL est doté d'un mécanisme d'ouverture automatique des fichiers. Il permet dès le premier accès à un fichier, d'effectuer son ouverture si elle n'a pas déjà été faite. Le temps nécessaire aux ouvertures des fichiers est ainsi réparti tout au long de l'application, plutôt qu'en une seule fois au lancement. La fonction HPasse permet si besoin de spécifier le mot de passe des fichiers pour le mécanisme d'ouverture automatique. Le gain peut être de plusieurs secondes dans une applications ayant des centaines de fichier.

Autre avantage de ce mécanisme, seuls les fichiers effectivement utilisés sont ouverts, limitant ainsi les ressources nécessaires sur le serveur de données.

Ce mécanisme d'ouverture automatique est disponible pour HFSQL Client/Serveur mais également pour HFSQL Classic.

Astuce :
Il est recommandé de cocher l'option suivante dans le projet, afin de s'assurer d'avoir en plus de l'ouverture automatique des fichiers, leur création automatique :

  • menu "Projet ... Description duprojet",
  • volet "Fichiers",
  • cocher "Créer automatiquementles fichiers de données".

Cette solution évite de conserver dans le programme l'appel suivant, pour les prochains ajouts de fichiers de données dans la base :

HCréationSiInexistant("*", hOuvertureDifférée)

< Retour