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 <Source>.Raye).
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 <Source>.Supprime, l'enregistrement est inséré dans la liste des enregistrements supprimés du fichier de données et sera ré-utilisé par la fonction <Source>.Ajoute.
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 <Source>.SupprimeTout.
Exemple
WEBDEV - Code ServeurPHPAjaxHFSQL ClassicHFSQL Client/ServeurHyper File 5.5
// Supprime l'enregistrement numéro 123 
Client.Supprime(123)
// Suppression des commandes d'un client 
Commande.LitRecherchePremier(NumCli, ValNumCli)
TANTQUE Commande.Trouve() = Vrai
Commande.Supprime()
Commande.LitSuivant()
FIN
// Suppression des commandes d'un client 
POUR TOUT Commande AVEC NumCli = ValNumCli
Commande.Supprime()
FIN
Syntaxe
<Résultat> = <Source>.Supprime([<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 <Source>.Supprime renvoie Vrai.
<Source> : Type correspondant à la source spécifiée
Nom du fichier de données HFSQL ou de la vue manipulé.
<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 <Source>.NumEnr.
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 <Variable Connexion>.Gè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 <Source>.NbEnr 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 <Source>.ExécuteRequête ou <Source>.Exé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 <Source>.Supprime 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 <Source>.ExécuteRequête ou <Source>.Exé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 <Source>.Supprime, le numéro de version du fichier de données est modifié. Ce numéro de version est donné par la fonction <Source>.Version.
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 <Source>.Ajoute). 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 <Source>.Ré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 <Source>.Supprime a le même effet que la fonction <Source>.Raye : l'enregistrement est rayé et non supprimé. L'enregistrement peut donc être réactivé par la fonction <Source>.Modifie. Dans ce cas, la fonction <Source>.Etat 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 <Source>.Réindexe.
Fichiers FoxPro : La fonction <Source>.Réindexe n'est pas disponible
Composante : wd290hf.dll
Version minimum requise
  • Version 25
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 20/06/2023

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