|
hListeFichier() et procédures stockées |
Started by Simon, Feb., 21 2018 2:27 PM - 6 replies |
| |
| | | |
|
| |
Posted on February, 21 2018 - 2:27 PM |
Bonjour à toutes et à tous,
J'ai besoin de lister tous les fichier de ma BDD HFSQL depuis une procédure stockée, mais malheureusement, cette fonction n'est pas disponible dans ces dernières. Quelqu'un connait-il une solution alternative ?
Merci par avance |
| |
| |
| | | |
|
| | |
| |
Registered member 165 messages Popularité : +12 (12 votes) |
|
Posted on February, 21 2018 - 6:29 PM |
Bonjour; En dur sous windows 7 : en remplaçant
- MonServeur par le nom de ton serveur - MaBaseDeDonnées par le nom de ta base de données dans le code de la procédure stockée suivant :
Procedure ListeFichiersHF()
RENVOYER fListeFichier("C:\ProgramData\PC SOFT\ServeurHFSQL_MonServeur\BDD\MaBaseDeDonnées\*.FIC",frNonRécursif)
l'appel à la procédure : en remplaçant Maconnexion par le nom de ta connexion
Info(HExecuteProcedure(Maconnexion,ListeFichiersHF))
Bon Dev. |
| |
| |
| | | |
|
| | |
| |
Posted on February, 22 2018 - 9:16 AM |
Bonjour Fouedusa et merci pour ta réponse.
HExecuteProcedure() n'est pas disponible en code PS, tout comme la gestion de la connexion.
En fait je cherche à créer une tâche dans le CC HFSQL pour exécuter une PS tous les soirs à 0h01 qui va chercher la liste de tous les fichiers de ma BDD (fic/ndx/mmo/ftx) afin de stocker la volumétrie de chaque table au quotidien (taille + nb enregs) à des fins statistiques. Le gros problème, c'est que la plupart des fonctions dont j'ai besoin ne sont pas disponibles dans les procédures stockées...
Je cherche un peu l'équivalent de ce code que j'ai côté ERP pour surveiller mes volumes en temps réel :
sNomFichierSansExt est une chaîne sListeFichier est une chaîne bFichierRacine est un booléen nTailleFichier est un entier nTailleIndex est un entier nTailleFic est un entier nTailleMmo est un entier nTailleFtx est un entier xTailleDec est un numérique xTailleDecIndex est un numérique xTailleDecFic est un numérique xTailleDecMmo est un numérique xTailleDecFtx est un numérique
sListeFichier = HListeFichier(gmodXXX.gcnxConnexionServeur,hLstTable)
POUR TOUTE chaîne sFichier de sListeFichier SEPAREE PAR RC bFichierRacine = ChaîneCommencePar(sFichier,"_") SI PAS bFichierRacine ALORS nTailleFichier = HInfoFichier(gmodPhoenix.gcnxConnexionServeur,sFichier, hTailleTotale) nTailleIndex = HInfoFichier(gmodPhoenix.gcnxConnexionServeur,sFichier, hTailleNdx) nTailleFic = HInfoFichier(gmodPhoenix.gcnxConnexionServeur,sFichier, hTailleFic) nTailleMmo = HInfoFichier(gmodPhoenix.gcnxConnexionServeur,sFichier, hTailleMmo) nTailleFtx = HInfoFichier(gmodPhoenix.gcnxConnexionServeur,sFichier, hTailleFtx) xTailleDec = nTailleFichier/1000000 xTailleDecIndex = nTailleIndex/1000000 xTailleDecFic = nTailleFic/1000000 xTailleDecMmo = nTailleMmo/1000000 xTailleDecFtx = nTailleFtx/1000000 sNomFichierSansExt = ExtraitChaîne(sFichier,1,".",DepuisDébut) TableAjouteLigne(TABLE_Fichiers,sFichier, HNbEnr(sNomFichierSansExt), xTailleDec, xTailleDecFic, xTailleDecIndex, xTailleDecMmo, xTailleDecFtx) FIN FIN |
| |
| |
| | | |
|
| | |
| |
Registered member 3,883 messages Popularité : +227 (347 votes) |
|
Posted on February, 22 2018 - 1:44 PM |
Bonjour, As tu essayé de regarder du côté de HlisteBase avec l'option hListeFichier ?
-- Il y a peut être plus simple, mais, ça tourne |
| |
| |
| | | |
|
| | |
| |
Registered member 165 messages Popularité : +12 (12 votes) |
|
Posted on February, 22 2018 - 6:18 PM |
Bonjour; Je propose d'ajouter un fichier dans la base de données, qui contiendra la liste des fichiers de cette BDD, et mis à jour par les différents modules de l'ERP quand il faudra, c.à.d. en cas d'ajout d'un nouveau fichier ou suppression d'un fichier.
enlever de la PS la ligne :
sListeFichier = HListeFichier(gmodXXX.gcnxConnexionServeur,hLstTable)
et le parcours dans la PS :
POUR TOUTE chaîne sFichier de sListeFichier SEPAREE PAR RC sera basé sur les enregistrements de ce fichier.
Bon Dev. |
| |
| |
| | | |
|
| | |
| |
Registered member 21 messages Popularité : +1 (1 vote) |
|
Posted on February, 23 2018 - 9:31 AM |
Bonjour,
je te propose d'utiliser les tâches planifiées du serveur d'application webdev. A voir avec le serveur 10 connexions si il n'y a pas de limitation de ce coté.
https://doc.pcsoft.fr/?1000019455
Tu pourras exploiter Hlistefichier et pleins d'autres fonctions non utilisable en procédure stockée.
Bon dev.
-- MJFORUM_NOR |
| |
| |
| | | |
|
| | |
| |
Posted on February, 23 2018 - 1:08 PM |
Pour le moment j'ai fait une fenêtre qui gère les tâches planifiées Windows et me permet de les exécuter soit en manuel, soit à la date prévue en lançant l'erp en lignes de commande et en switchant sur une collection de procédures globales dédiée au traitement des automatismes. L'erp ajoute automatiquement à sa bdd les tâches commençant"par WD" pour ne pas se mélanger les pinceaux avec les tâches système. Je stocke donc dans ma BDD la liste des tâches Windows ainsi qu'une historisation de chaque exécution avec la durée de traitement, un fichier de log joint...
Tout va passer dans ce traitement : génération de factures, mailing, reindexation de la BDD, récaps du CA...
Ces limites techniques des PS m'ont donc poussé à développer du tout fait maison mais au final qui correspond bien plus à mes attentes.
Merci à tous pour vos réponses. |
| |
| |
| | | |
|
| | | | |
| | |
|