DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Gestion des bases de données / HFSQL / Fonctions HFSQL
  • Manipulations d'un enregistrement supprimé
  • Nombre d'enregistrements supprimés
  • Suppression d'un enregistrement à partir d'une requête
  • Version du fichier de données
  • Taille du fichier de données
  • Suppression et blocage
  • xBase/FoxFro
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
Supprime un enregistrement d'un fichier de données (d'une requête ou d'une vue). L'enregistrement est supprimé logiquement et physiquement. Il ne pourra pas être restauré (contrairement aux enregistrements rayés avec la fonction HRaye).
Les opérations effectuées sont les suivantes :
  • l'enregistrement est supprimé : l'enregistrement est rendu inactif et il n'est plus référencé dans l'index. Les données ne sont pas conservées.
  • les index (correspondant aux clés de l'enregistrement) sont supprimés du fichier d'index.
  • les mémos associés à l'enregistrement sont supprimés du fichier de mémo.
Après l'exécution de la fonction HSupprime, l'enregistrement est inséré dans la liste des enregistrements supprimés du fichier de données et sera ré-utilisé par la fonction HAjoute.
PHPOLE DBConnecteurs Natifs (Accès Natifs) L'enregistrement supprimé n'est plus visible par le parcours sur la rubrique courante. Cet enregistrement ne sera plus visible pour les parcours sur les autres rubriques uniquement après ré-initialisation de ces parcours.


WINDEV, WINDEV Mobile et WEBDEV proposent une gestion automatique des erreurs pour les 5 types d'erreur suivants : Erreur de doublons, Erreur d'intégrité, Erreur de mot de passe, Erreur de conflit de modification et d'état lors du conflit de modification, Erreur de blocage. Pour plus de détails, consultez Gestion assistée des erreurs HFSQL.
Remarque : Pour supprimer tous les enregistrements d'un fichier de données, utilisez la fonction HSupprimeTout.
Exemple
WEBDEV - Code ServeurPHPAjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5
// Supprime l'enregistrement numéro 123 
HSupprime(Client, 123)
// Suppression des commandes d'un client 
HLitRecherchePremier(Commande, NumCli, ValNumCli) 
TANTQUE HTrouve() = Vrai
HSupprime()
HLitSuivant()
FIN
// Suppression des commandes d'un client 
POUR TOUT Commande AVEC NumCli = ValNumCli
HSupprime()
FIN
Syntaxe
<Résultat> = HSupprime([<Fichier de données> [, <Numéro d'enregistrement> [, <Options>]]])
<Résultat> : Booléen
  • Vrai si l'enregistrement a été supprimé,
  • Faux en cas de problème (enregistrement bloqué, etc. (voir cas particuliers)). La fonction HErreurInfo permet d'identifier l'erreur.
Si l'enregistrement à supprimer est déjà supprimé, la fonction HSupprime renvoie Vrai.
<Fichier de données> : Chaîne de caractères optionnelle
Nom du fichier de données HFSQL ou de la vue manipulé. Si ce paramètre correspond à une chaîne vide (""), la fonction HSupprime manipule le dernier fichier de données utilisé par la dernière fonction de gestion HFSQL (fonction commençant par la lettre H).
<Numéro d'enregistrement> : Entier optionnel
Numéro de l'enregistrement à supprimer. Si ce paramètre n'est pas précisé (est égal à 0 ou à la constante hNumEnrEnCours), l'enregistrement en cours sera supprimé. Cependant, l'enregistrement en cours restera l'enregistrement supprimé.

ATTENTION : Il ne faut pas confondre le numéro d'enregistrement avec l'identifiant automatique associé à l'enregistrement.
Dans une utilisation normale, ces deux numéros ne sont pas identiques. Le numéro d'enregistrement peut être connu par la fonction HNumEnr.
OLE DBConnecteurs Natifs (Accès Natifs) Ce paramètre doit obligatoirement correspondre au numéro de l'enregistrement en cours (constante hNumEnrEnCours).
<Options> : Constante optionnelle
Paramètre la gestion de l'intégrité réalisée sur l'enregistrement supprimé.
hIgnoreIntégritéIgnore le contrôle d'intégrité sur cette opération, même si le contrôle de l'intégrité automatique est branché (fonction HGèreIntégrité)
PHP Ce paramètre est ignoré.
Remarques
WEBDEV - Code ServeurPHPAjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5

Manipulations d'un enregistrement supprimé

WEBDEV - Code ServeurPHPAjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5

Nombre d'enregistrements supprimés

La fonction HNbEnr permet de connaître le nombre d'enregistrements supprimés dans le fichier de données.
Remarque : Par compatibilité avec Hyper File 5.5, il est aussi possible de connaître le nombre d'enregistrements supprimés grâce à la variable H.NbSup.

Suppression d'un enregistrement à partir d'une requête

La suppression d'un enregistrement dans une requête peut être effectuée :
  • soit uniquement dans le résultat de la requête
  • soit directement dans les fichiers de données manipulés par la requête (constante hModifieFichier utilisée dans les fonctions HExécuteRequête ou HExécuteRequêteSQL). Dans ce cas, la constante hAvecFiltre est automatiquement sélectionnée.
Quel que soit le mode d'exécution de la requête (avec ou sans la constante hAvecFiltre), la fonction HSupprime n'est utilisable que sur les requêtes mono-fichier.
Attention :
  • Sur des fichiers de données non HFSQL, il est inutile de préciser la constante hModifieFichier dans les fonctions HExécuteRequête ou HExécuteRequêteSQL : les fichiers de données intervenant dans la requête sont automatiquement modifiés lors de la modification du résultat de la requête.
  • Il est impossible de supprimer un enregistrement dans une requête utilisant les groupes ou les agrégats.
  • La gestion de l'intégrité et des doublons n'est pas réalisée lors d'opérations sur les requêtes multi-fichiers : il est conseillé d'utiliser les transactions pour éviter tout problème.
Pour plus de détails, consultez Modifier le contenu d'une requête.
WEBDEV - Code ServeurPHPAjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5

Version du fichier de données

En cas de succès de la fonction HSupprime, le numéro de version du fichier de données est modifié. Ce numéro de version est donné par la fonction HVersion.
WEBDEV - Code ServeurPHPAjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5

Taille du fichier de données

La suppression d'un ou plusieurs enregistrements n'a pas d'incidence sur la taille totale du fichier de données sur disque. Les emplacements laissés libres dans le fichier de données par les suppressions seront réutilisés lors des prochains ajouts d'enregistrements (fonction HAjoute). Cette fonctionnalité permet d'obtenir de meilleurs performances, la réduction de la taille d'un fichier de données étant souvent coûteuse en temps.
Cependant, si après de nombreuses suppressions, il est nécessaire de réduire la taille d'un fichier de données, il est possible de le ré-indexer (via la fonction HRéindexe, l'outil WDMap ou le Centre de Contrôle HFSQL).
WEBDEV - Code ServeurAjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5OLE DBConnecteurs Natifs (Accès Natifs)

Suppression et blocage

Si un problème de blocage apparaît lors de la "suppression" d'un enregistrement (tentative de suppression d'un enregistrement bloqué en écriture par exemple), l'enregistrement n'est pas supprimé et la fonction HErreurBlocage renvoie Vrai.
WEBDEV - Code ServeurAjaxConnecteurs Natifs (Accès Natifs)

xBase/FoxFro

La fonction HSupprime a le même effet que la fonction HRaye : l'enregistrement est rayé et non supprimé. L'enregistrement peut donc être réactivé par la fonction HModifie. Dans ce cas, la fonction HEtat renvoie la constante hEtatRaye sur un enregistrement supprimé (et non la constante hEtatSup).
Pour supprimer physiquement les enregistrements rayés, il faut utiliser la fonction HRéindexe.
Fichiers FoxPro : La fonction HRéindexe n'est pas disponible
Composante : wd290hf.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 21/11/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale