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 de la table
  • Taille de la table
  • Suppression et blocage
  • xBase/FoxFro
WINDEV
WindowsLinuxJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac Catalyst
Autres
Procédures stockées
Supprime un enregistrement d'une table (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 de la table 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'une table, utilisez la fonction HSupprimeTout.
Exemple
WINDEVWEBDEV - Code ServeuriPhone/iPadJavaPHPAjaxHFSQL 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([<Table> [, <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.
<Table> : Chaîne de caractères optionnelle
Nom de la table HFSQL ou de la vue manipulée. Si ce paramètre correspond à une chaîne vide (""), la fonction HSupprime manipule la dernière table utilisée 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).
Java Accès par JDBC: 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é.
Java Accès par JDBC: Ce paramètre est ignoré.
Remarques
WINDEVWEBDEV - Code ServeuriPhone/iPadJavaLangage ExternePHPAjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5

Manipulations d'un enregistrement supprimé

WINDEVWEBDEV - Code ServeuriPhone/iPadJavaLangage ExternePHPAjaxHFSQL 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 la table.
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 tables manipulées par la requête (constante hModifieTable 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 monofichiers.
Attention:
  • Sur des tables non HFSQL, il est inutile de préciser la constante hModifieTable dans les fonctions HExécuteRequête ou HExécuteRequêteSQL: les tables intervenant dans la requête sont automatiquement modifiées 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 multifichiers: 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.
WINDEVWEBDEV - Code ServeuriPhone/iPadJavaLangage ExternePHPAjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5

Version de la table

En cas de succès de la fonction HSupprime, le numéro de version de la table est modifié. Ce numéro de version est donné par la fonction HVersion.
WINDEVWEBDEV - Code ServeuriPhone/iPadJavaLangage ExternePHPAjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5

Taille de la table

La suppression d'un ou plusieurs enregistrements n'a pas d'incidence sur la taille totale de la table sur disque. Les emplacements laissés libres dans la table par les suppressions seront réutilisés lors des prochains ajouts d'enregistrements (fonction HAjoute). Cette fonctionnalité permet d'obtenir de meilleures performances, la réduction de la taille d'une table étant souvent coûteuse en temps.
Cependant, si après de nombreuses suppressions, il est nécessaire de réduire la taille d'une table, il est possible de la ré-indexer (via la fonction HRéindexe, l'outil WDMap ou le Centre de Contrôle HFSQL).
WINDEVWEBDEV - Code ServeuriPhone/iPadJavaLangage ExterneAjaxHFSQL 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.
WINDEVWEBDEV - 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: wd300hf.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 27/03/2025

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