On peut être amené à effectuer une action sur tous les fichiers qui sont hébergés dans une base de données du moteur HFSQL client/serveur, ou pour tous les fichiers de toutes les bases de données : comptage d'enregistrements, récupération de copies, ...
Voici un code "générique" pouvant servir de base pour cette exploration de données :
CnxServeurHFSQL est une Connexion CnxUneBase est une Connexion sdFichier est une Source dede Données sMotPasse est une chaîne <indétectable> = ""
CnxServeurHFSQL..Provider = hAccèsHFClientServeur CnxServeurHFSQL..Utilisateur = "admin" CnxServeurHFSQL..MotDePasse = sMotPasse CnxServeurHFSQL..Serveur = "MonServeur:portserveur" CnxServeurHFSQL..BaseDeDonnées = "" CnxServeurHFSQL..Cryptage = hCryptageRC5_16
CnxUneBase..Provider = CnxServeurHFSQL..Provider CnxUneBase..Utilisateur = CnxServeurHFSQL..Utilisateur CnxUneBase..MotDePasse = sMotPasse CnxUneBase..Serveur= CnxServeurHFSQL..Serveur CnxUneBase..Cryptage = CnxServeurHFSQL..Cryptage
nNbFichiers est un entier sur 8 nNbEnrActifTotal est un entier sur 8
HOuvreConnexion(CnxServeurHFSQL)
POUR TOUTE chaîne sUneBase de CnxServeurHFSQL.ListeBaseDeDonnées(hLstNormalSEPAREE PARAR TAB TraceConstruit("Traitement de la base <%1> ...", sUneBase)
CnxUneBase..BaseDeDonnées = sUneBase CnxUneBase.OuvreConnexion()
POUR TOUTE chaîne sFichier de CnxUneBase.ListeFichier(SEPAREE PARAR RC
SI HDéclareExterne(sFichier, sdFichier, CnxUneBase) ALORS
sdFichier.MotDePasse("LeMotDePasse")
TraceConstruit("Fichier %1 avec %2 enregistrements actifs, %3 supprimés, %4 rayés.", sFichier, sdFichier.NbEnr(hEtatActif), sdFichier.NbEnr(hEtatSup), sdFichier.NbEnr(hEtatRayé)) nNbFichiers++ ; nNbEnrActifTotal += sdFichier.NbEnr(hEtatActif) sdFichier.AnnuleDéclaration() SINON TraceConstruit("Oups, le fichier <%1> n'a pas pu être traité : %2", sFichier, ErreurInfo(errMessage)) FIN FIN
CnxUneBase.FermeConnexion() FIN
CnxServeurHFSQL.FermeConnexion()
TraceConstruit("%1 fichiers hébergés sur le serveur %2, %3 enregistrements actifs", nNbFichiers, CnxServeurHFSQL..Serveur, nNbEnrActifTotal)
... |