PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Propriétés WLangage utilisables avec le type hDescriptionSauvegarde
  • Fonctionnement de la limite du nombre de sauvegardes (propriété LimiteNombreSauvegarde)
  • Paramètres de la procédure stockée appelée AVANT la sauvegarde
  • Paramètres de la procédure stockée appelée APRES la sauvegarde
  • Fonctions utilisant les variables de type hDescriptionSauvegarde :
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Le type hDescriptionSauvegarde permet de décrire une sauvegarde HFSQL Client/Serveur par programmation.
Cette sauvegarde peut être immédiate ou planifiée.
Les caractéristiques de cette sauvegarde peuvent être définies et modifiées à l'aide de différentes propriétés WLangage.
Remarque : Pour plus de détails sur la déclaration de ce type de variable et l'utilisation des propriétés WLangage, consultez Déclaration d'une variable.
Exemple
// Description d'une sauvegarde immédiate
Sauvegarde_Doc est une hDescriptionSauvegarde
Sauvegarde_Doc.Description = "Sauvegarde Doc"
Sauvegarde_Doc.AvecIndex = Vrai
Sauvegarde_Doc.Jauge = "JAUGE_MaJauge"
Sauvegarde_Doc.Destination = "Doc/Sauvegarde"
Sauvegarde_Doc.Source = "Doc/*"
Sauvegarde_Doc.ProcédureAvant = "mabasededonnees:ColDoc.Vérif"
Sauvegarde_Doc.ProcédureAprès = "mabasededonnees:ColDoc.VérifSauvegarde"
Sauvegarde_Doc.LimiteNombreSauvegarde = 5
// Enregistrement de la sauvegarde
HSauvegarde(MaConnexion, Sauvegarde_Doc)
// Création d'une sauvegarde planifiée toutes les 5 minutes
// avec une sauvegarde différentielle toutes les minutes
hSvg est une hDescriptionSauvegarde
hSvg.Activé = Vrai
hSvg.AvecIndex = Vrai
hSvg.Description = "Sauvegarde planifiée toutes les N minutes " + ...
" avec une sauvegarde différentielle toutes les minutes sur la base de données " + ...
 cnx.BaseDeDonnées + " créée le "+ DateVersChaîne(DateSys(), maskDateSystème) + ...
" à " + HeureVersChaîne(HeureSys(), "HH:MM:SS:CC")
hSvg.Destination = "Sauvegarde_"+ cnx.BaseDeDonnées
hSvg.LimiteNombreSauvegarde = 2
hSvg.Source = cnx.BaseDeDonnées
hSvg.PlanificationComplète.Mois = "*"
hSvg.PlanificationComplète.JourDuMois = "*"
// Définition de la planification
dhDateHeureServeur est une DateHeure = HInfoServeur(cnx, hInfoDate)
dhDateHeureServeur.Minute++
hSvg.PlanificationComplète.Heure = dhDateHeureServeur.Heure
hSvg.PlanificationComplète.Minute = dhDateHeureServeur.Minute
hSvg.PlanificationComplète.JourDeLaSemaine = "*"
hSvg.PlanificationComplète.JourDuMoisOuDeLaSemaine = Faux
hSvg.PlanificationDifférentielle.Mois = "*"
hSvg.PlanificationDifférentielle.JourDuMois = "*"
hSvg.PlanificationDifférentielle.Heure = "*"
hSvg.PlanificationDifférentielle.Minute = "*"
hSvg.PlanificationDifférentielle.JourDeLaSemaine = "*"
hSvg.PlanificationDifférentielle.JourDuMoisOuDeLaSemaine = Faux
 
// Ajout de la sauvegarde planifiée
SI HAjouteSauvegardePlanifiée(cnx, hSvg) = Faux ALORS
Erreur("Echec de la création de la sauvegarde planifiée", HErreurInfo(hErrComplet))
RETOUR
FIN
Remarques

Propriétés WLangage utilisables avec le type hDescriptionSauvegarde

Les propriétés suivantes peuvent être utilisées pour manipuler une variable de type hDescriptionSauvegarde.
NomType manipuléEffet
ActivéBooléenPermet de gérer l'activation d'une sauvegarde planifiée :
  • Vrai si la planification de la sauvegarde est activée : la sauvegarde est réalisée selon la planification définie.
  • Faux si la planification de la sauvegarde n'est pas activée : la sauvegarde n'est pas réalisée.
AvecIndexBooléen
  • Vrai si la sauvegarde des index doit être réalisée,
  • Faux dans le cas contraire.
Cette propriété est optionnelle.
Par défaut, la sauvegarde des index est réalisée.
CompressionConstante de type EntierPermet de compresser ou non le résultat de la sauvegarde. Cette propriété peut correspondre à une des constantes suivantes :
  • zipFormatAucun : Aucune compression.
  • zipFormatZIP : Compression au format Zip.
DescriptionChaîne de caractèresDescription associée à la sauvegarde.
Cette propriété est optionnelle.
Par défaut, la description de la sauvegarde correspond à une chaîne vide ("").
DestinationChaîne de caractèresDestination de la sauvegarde (Nom et destination de la sauvegarde).
La sauvegarde sera réalisée sur le serveur, dans un emplacement défini par ce nom.
Si ce nom correspond à un chemin relatif, la sauvegarde sera placée dans le sous-répertoire "Backup" du serveur HFSQL.
Pour spécifier :
  • le répertoire du service Manta, il suffit d'utiliser la chaîne de caractères "%%EXE%%".
  • l'année, il suffit d'utiliser la chaîne de caractères "%%ANNEE%%" (par exemple 2008).
  • le mois sur 2 chiffres, il suffit d'utiliser la chaîne de caractères "%%MOIS%%" (par exemple 03).
  • le jour, il suffit d'utiliser la chaîne de caractères "%%JOUR%%".
  • l'heure, il suffit d'utiliser la chaîne de caractères "%%HEURE%%".
  • les minutes, il suffit d'utiliser la chaîne de caractères "%%MINUTE%%".
Exemples :
  • Pour stocker la sauvegarde dans un répertoire qui correspond à l'année, au jour, et à l'heure dans le sous-répertoire "Backup", utilisez :
    // Sauvegarde dans le répertoire 2021_21_13
    Svg_Doc.Destination="%%ANNEE%%_%%JOUR%%_%%HEURE%%"
  • Pour stocker la sauvegarde dans un répertoire "Doc/Sauvegarde" au même niveau que le répertoire du service Manta, utilisez :
    Svg_Doc.Destination="%%EXE%%/Doc/Sauvegarde/%%ANNEE%%"
IdentifiantEntierIdentifiant de la sauvegarde.
Cette propriété est disponible en lecture seulement.
JaugeNom d'un champNom du champ Jauge utilisé dans la fenêtre pour voir la progression de la phase d'initialisation de la sauvegarde (et non la progression de la sauvegarde).

Propriété optionnelle disponible uniquement en WINDEV.
LimiteNombreSauvegardeEntierNombre maximum de sauvegardes du même type à réaliser. Si ce chiffre correspond à 0, il n'y a pas de limite.
Si le nombre de sauvegardes dépasse la valeur limite, certaines sauvegardes anciennes seront retirées du serveur.
Pour plus de détails, consultez le paragraphe "Fonctionnement de la limite du nombre de sauvegardes".
PlanificationComplèteVariable de type hPlanificationCaractéristiques d'une sauvegarde complète. Cette propriété est obligatoire.
PlanificationDifférentielleVariable de type hPlanificationCaractéristiques d'une sauvegarde différentielle. Il est possible de définir à la fois une sauvegarde complète et une sauvegarde différentielle. Il n'est pas possible de réaliser uniquement une sauvegarde différentielle.
Cette propriété est optionnelle.
ProcédureAprèsChaîne de caractèresNom de la procédure stockée utilisée après l'exécution de la sauvegarde.
Le nom de la procédure est de la forme : <Nom de la base de données>:<Nom de la collection de procédures>.<Nom de la procédure stockée>.

Cette propriété est optionnelle.
Si cette propriété n'est pas définie, aucune procédure n'est exécutée.

Pour plus de détails, consultez le paragraphe "Paramètres de la procédure stockée appelée APRES la sauvegarde".
ProcédureAvantChaîne de caractèresNom de la procédure stockée utilisée avant l'exécution de la sauvegarde.
Le nom de la procédure est de la forme : <Nom de la base de données>:<Nom de la collection de procédures>.<Nom de la procédure stockée>.

Cette propriété est optionnelle.
Si cette propriété n'est pas définie, aucune procédure n'est exécutée.

Pour plus de détails, consultez le paragraphe "Paramètres de la procédure stockée appelée AVANT la sauvegarde".
Source (*)Chaîne de caractèresFiltre utilisé pour définir les données à sauvegarder. Les valeurs possibles sont :
  • * : Sauvegarde toutes les bases de données du serveur, les journaux, les bases de données systèmes (utilisateurs, groupes, droits).
  • Nom de la base de données/* : Sauvegarde toute la base de données : fichiers, liaisons, procédures stockées, triggers.
  • Nom de la base de données/Nom Fichier1 : Sauvegarde le fichier <Nom Fichier1> de la base de données <Nom de la base de données>.
  • Nom de la base de données 1/Nom Fichier1 + TAB + Nom de la base de données 2/Nom Fichier2 + ... : Liste d'éléments à sauvegarder. Le séparateur utilisé peut être la tabulation (TAB) ou le point virgule (";").
  • System : Sauvegarde les bases de données systèmes (utilisateurs, groupes, droits).
Cette propriété est obligatoire.
UtilisateurChaîne de caractèresUtilisateur qui a créé la sauvegarde.
Cette propriété est disponible en lecture seulement.
WebhookAprèsChaîne de caractèresURL d'un service REST qui sera déclenché après la sauvegarde et la procédure spécifiée avec la propriété ProcédureAprès (si elle existe).
Une requête de type POST sera effectuée sur l'URL fournie. L'URL reçoit un contenu de type 'application/json' correspondant aux informations sur la sauvegarde effectuée. Par exemple :
{
"identifier" : "283",
"destination" : "c:\backup\283\monbackup.zip",
"state" : "completed"
}
où :
  • "identifier" correspond à l'identifiant de la sauvegarde.
  • "destination" correspond à la destination de la sauvegarde.
  • "state" correspond à l'état de la sauvegarde. Différents états sont possibles : 'completed', 'canceled' ou 'error'.
Les propriétés suivies du caractère (*) sont obligatoires.

Fonctionnement de la limite du nombre de sauvegardes (propriété LimiteNombreSauvegarde)

Lorsque la limite du nombre de sauvegardes est activée (LimiteNombreSauvegarde différent de 0)  :
  1. Avant la sauvegarde : Recherche des anciennes sauvegardes similaires (même source et même destination). Si ces sauvegardes sont en erreur, les fichiers de la sauvegarde seront effacés du disque (mais la sauvegarde restera présente dans l'historique des sauvegardes).
  2. Exécution de la "Procédure Avant".
  3. Sauvegarde.
  4. Exécution de la "Procédure Après".
  5. Si le nombre de sauvegardes similaires (même source et même destination) effectuées avec succès est supérieur à la valeur de la limite alors le serveur va supprimer certaines de ces sauvegardes et les retirer de l'historique. Cette suppression se fait en commençant par la sauvegarde la plus ancienne jusqu'à ce que le nombre de sauvegardes soit égal à la valeur demandée.
Remarque : Il est possible d'utiliser cette propriété pour mettre en place un système de sauvegarde spécifique. Par exemple :
  • Une sauvegarde tous les jours, avec conservation des 7 dernières.
  • Une sauvegarde toutes les semaines avec conservation des 4 dernières.
  • Une sauvegarde tous les mois avec conservation des 6 dernières.

Paramètres de la procédure stockée appelée AVANT la sauvegarde

La procédure stockée appelée AVANT la sauvegarde peut prendre des paramètres. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(<Données à sauvegarder>, ...
<Destination de la sauvegarde>, <Description>)
Ces paramètres sont optionnels. Ils vous permettront de manipuler les indications suivantes dans le code de la procédure stockée :
  • <Données à sauvegarder> : Chaîne de caractères correspondant aux informations à sauvegarder. Correspond à la propriété Source. Les valeurs possibles sont les suivantes :
    *Sauvegarde toutes les bases de données du serveur, les journaux, les bases de données systèmes (utilisateurs, groupes, droits).
    Nom de la base de données 1/Nom Fichier1 + TAB + Nom de la base de données 2/Nom Fichier2 + ...Liste d'éléments à sauvegarder. Le séparateur utilisé peut être la tabulation (TAB) ou le point virgule (";").
    Nom de la base de données/*Sauvegarde toute la base de données : fichiers, liaisons, procédures stockées, triggers.
    Nom de la base de données/Nom Fichier1Sauvegarde le fichier <Nom Fichier1> de la base de données <Nom de la base de données>.
    SystemSauvegarde les bases de données systèmes (utilisateurs, groupes, droits).
  • <Destination de la sauvegarde> : Nom et destination de la sauvegarde. Correspond à la propriété Destination. La sauvegarde sera réalisée sur le serveur, dans un emplacement défini par ce nom. Si ce nom correspond à un chemin relatif, la sauvegarde sera placée dans le sous-répertoire "Backup" du serveur HFSQL. Pour spécifier :
    • le répertoire du service Manta, il suffit d'utiliser la chaîne de caractères "%%EXE%%".
    • l'année, il suffit d'utiliser la chaîne de caractères "%%ANNEE%%" (par exemple 2008).
    • le mois sur 2 chiffres, il suffit d'utiliser la chaîne de caractères "%%MOIS%%" (par exemple 03).
    • le jour, il suffit d'utiliser la chaîne de caractères "%%JOUR%%".
    • l'heure, il suffit d'utiliser la chaîne de caractères "%%HEURE%%".
    • les minutes, il suffit d'utiliser la chaîne de caractères "%%MINUTE%%".
  • <Description> : Description de la sauvegarde. Correspond à la propriété Description.

Paramètres de la procédure stockée appelée APRES la sauvegarde

La procédure stockée appelée APRES la sauvegarde peut prendre des paramètres. Cette procédure est de la forme :
PROCEDURE <Nom de la procédure>(<Données à sauvegarder>, <Destination de la sauvegarde>, ...
<Description>, <Etat>, <Message d'erreur>)
Ces paramètres sont optionnels. Ils vous permettront de manipuler les indications suivantes dans le code de la procédure stockée :
  • <Données à sauvegarder> : Chaîne de caractères correspondant aux informations à sauvegarder. Correspond à la propriété Source. Les valeurs possibles sont les suivantes :
    *Sauvegarde toutes les bases de données du serveur, les journaux, les bases de données systèmes (utilisateurs, groupes, droits).
    Nom de la base de données 1/Nom Fichier1 + TAB + Nom de la base de données 2/Nom Fichier2 + ...Liste d'éléments à sauvegarder. Le séparateur utilisé peut être la tabulation (TAB) ou le point virgule (";").
    Nom de la base de données/*Sauvegarde toute la base de données : fichiers, liaisons, procédures stockées, triggers.
    Nom de la base de données/Nom Fichier1Sauvegarde le fichier <Nom Fichier1> de la base de données <Nom de la base de données>.
    SystemSauvegarde les bases de données systèmes (utilisateurs, groupes, droits).
  • <Destination de la sauvegarde> : Nom et destination de la sauvegarde. Correspond à la propriété Destination. La sauvegarde sera réalisée sur le serveur, dans un emplacement défini par ce nom. Si ce nom correspond à un chemin relatif, la sauvegarde sera placée dans le sous-répertoire "Backup" du serveur HFSQL. Pour spécifier :
    • le répertoire du service Manta, il suffit d'utiliser la chaîne de caractères "%%EXE%%".
    • l'année, il suffit d'utiliser la chaîne de caractères "%%ANNEE%%" (par exemple 2008).
    • le mois sur 2 chiffres, il suffit d'utiliser la chaîne de caractères "%%MOIS%%" (par exemple 03).
    • le jour, il suffit d'utiliser la chaîne de caractères "%%JOUR%%".
    • l'heure, il suffit d'utiliser la chaîne de caractères "%%HEURE%%".
    • les minutes, il suffit d'utiliser la chaîne de caractères "%%MINUTE%%".
  • <Description> : Description de la sauvegarde. Correspond à la propriété Description.
  • <Etat> : entier (ou constante de type Entier) permettant de connaître l'état de la sauvegarde :
    hSvgAnnulée2Sauvegarde annulée
    hSvgEnCours0Sauvegarde en cours
    hSvgErreur3Erreur lors de la sauvegarde
    hSvgTerminée1Sauvegarde terminée
  • <Message d'erreur> : Message d'erreur s'il existe sous forme de chaîne de caractères.

Fonctions utilisant les variables de type hDescriptionSauvegarde :

HAjouteSauvegardePlanifiéeAjoute une planification de sauvegarde complète (avec ou sans sauvegarde différentielle) sur le serveur défini par la connexion.
HListeSauvegardePlanifiéeListe les sauvegardes complètes et différentielles qui ont été planifiées sur un serveur HFSQL Client/Serveur.
HModifieSauvegardePlanifiéeModifie une planification de sauvegarde.
HSauvegardeRéalise la sauvegarde du contenu d'un serveur HFSQL : toutes les bases de données du serveur, une ou plusieurs bases de données, un ou plusieurs fichiers de données.
Version minimum requise
  • Version 14
Documentation également disponible pour…
Commentaires
Propriété Source
Dans le mode de sélection de fichier un à un (Base1/Fichier 1+TAB+Base 2/Fichier 2+....), il faut ajouter l'extension .FIC au nom du fichier pour que cela fonctionne correctement
Baptiste Bourlet
25 mai 2016