27 mai 2024
publié par 

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


// Ouverture d'une connexion au serveur pour énumérer toutes les bases de données
HOuvreConnexion(CnxServeurHFSQL)


// Récupération de la liste des bases pour traiter tout un serveur
// Suivant le besoin on pourrait traiter une seule base en s'y connectant directement


POUR TOUTE chaîne sUneBase de CnxServeurHFSQL.ListeBaseDeDonnées(hLstNormalSEPAREE PARAR TAB

TraceConstruit("Traitement de la base <%1> ...", sUneBase)

// Connexion à cette base de données
CnxUneBase..BaseDeDonnées = sUneBase
CnxUneBase.OuvreConnexion()

// Récupération de la liste de tous les fichiers hébergés dans cette base
POUR TOUTE chaîne sFichier de CnxUneBase.ListeFichier(SEPAREE PARAR RC

// Déclaration d'une source de données pour accéder à ce fichier de la base
SI HDéclareExterne(sFichier, sdFichier, CnxUneBase) ALORS

// Pour chaque fichier chiffré par un mot de passe il faut l'indiquer avant l'ouverture
sdFichier.MotDePasse("LeMotDePasse")
// Récupération des informations voulues sur le fichier, pour l'exemple les nombres d'enregs
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

// Fermeture de la connexion à cette base avant de passer à la suivante
CnxUneBase.FermeConnexion()

FIN
// Fermeture de la connexion au serveur
CnxServeurHFSQL.FermeConnexion()


TraceConstruit("%1 fichiers hébergés sur le serveur %2, %3 enregistrements actifs", nNbFichiers, CnxServeurHFSQL..Serveur, nNbEnrActifTotal)

 

 

...

< Retour

1 commentaire

BLOCH Jean-Pierre
29/06/2024 - 08:15 - Répondre
Bonjour, Petites erreurs dans l'affichage du code : POUR TOUTE chaîne sUneBase de CnxServeurHFSQL.ListeBaseDeDonnées(hLstNormalSEPAREE PARAR TAB = POUR TOUTE chaîne sUneBase de CnxServeurHFSQL.ListeBaseDeDonnées(hLstNormal) SEPAREE PAR TAB POUR TOUTE chaîne sFichier de CnxUneBase.ListeFichier(SEPAREE PARAR RC = POUR TOUTE chaîne sFichier de CnxUneBase.ListeFichier() SEPAREE PAR RC

Publier un commentaire : 
Votre adresse email ne sera pas publiée