|
|
|
|
|
- Manipulations d'un enregistrement rayé
- Nombre d'enregistrements rayés
- Version du fichier de données
- Rayer un enregistrement à partir d'une requête
- Cas particuliers
- Fichiers xBase
<Source>.Raye (Fonction) En anglais : <Source>.Cross
![HFSQL Classic HFSQL Classic](https://doc.pcsoft.fr/ext/images/fr/HF.png?-2134303037) Disponible uniquement avec ces types de connexion
Raye un enregistrement d'un fichier de données. L'enregistrement est supprimé logiquement et pourra éventuellement être récupéré. Les opérations effectuées sont les suivantes : - l'enregistrement est rendu inactif. Les données sont conservées (ce qui n'est pas le cas lors de la suppression d'un enregistrement avec la fonction <Source>.Supprime).
- les index (correspondant aux clés de l'enregistrement) sont supprimés du fichier d'index.
- les mémos associés à l'enregistrement sont conservés.
Cette fonction peut être utilisée indifféremment avec les fichiers de données, les vues HFSQL Mobile ou les requêtes.
// Raye l'enregistrement numéro 123 Client.Raye(123) // Suppression (rayure) des commandes d'un client Commande.LitRecherchePremier(NUMCLI, ValNumCli) TANTQUE Commande.Trouve() = Vrai Commande.Raye() Commande.LitSuivant() FIN Syntaxe
<Résultat> = <Source>.Raye([<Numéro d'enregistrement> [, <Options>]])
<Résultat> : Booléen - Vrai si l'enregistrement a été rayé,
- Faux en cas d'erreur (enregistrement bloqué, problème d'intégrité, ...). La fonction HErreurInfo permet d'obtenir plus de détails.
<Source> : Type correspondant à la source spécifiée Nom du fichier de données HFSQL, de la requête ou de la vue manipulé. <Numéro d'enregistrement> : Entier optionnel Numéro de l'enregistrement à rayer. Si ce paramètre n'est pas précisé (est égal à 0 ou à la constante hNumEnrEnCours), l'enregistrement en cours sera rayé. <Options> : Constante optionnelle Paramètre :- le blocage de l'enregistrement rayé. Si aucune constante de blocage n'est spécifiée, l'enregistrement rayé n'est pas bloqué.
| | hBlocageEcriture | Blocage en écriture : l'enregistrement rayé en cours pourra être lu et consulté (fonction <Source>.Lit) par une autre application mais ne pourra pas être ré-activé par une autre application. Seule l'application en cours pourra le ré-activer. | hBlocageLectureEcriture | Blocage en lecture/écriture : l'enregistrement rayé en cours ne pourra ni être consulté ni être ré-activé par une autre application. | hBlocageNon (valeur par défaut) | Aucun blocage : l'enregistrement rayé ne sera pas bloqué. |
- la gestion de l'intégrité sur l'enregistrement rayé.
Si les deux constantes sont utilisées en même temps, une erreur WLangage est générée. Ces constantes n'ont pas d'effet sur la suppression en cascade.
Remarques Manipulations d'un enregistrement rayé - Un enregistrement rayé ne sera lu :
- ni par les fonctions de parcours : <Source>.Premier, <Source>.Dernier, <Source>.Suivant, <Source>.Précédent, <Source>.LitPremier, <Source>.LitDernier, <Source>.LitSuivant, <Source>.LitPrécédent, <Source>.Avance, <Source>.Recule
- ni par les fonctions de recherche : <Source>.RecherchePremier, <Source>.LitRecherchePremier, <Source>.RechercheDernier, <Source>.LitRechercheDernier.
- Un enregistrement rayé pourra être consulté grâce à la fonction <Source>.Lit.
- Un enregistrement rayé pourra être réactivé grâce aux fonctions <Source>.Modifie ou <Source>.Ecrit.
- La fonction <Source>.Etat permet de connaître l'état d'un enregistrement (actif, rayé, supprimé, ...).
- L'emplacement physique d'un enregistrement rayé ne sera réutilisable (par la fonction <Source>.Ajoute par exemple) qu'après :
Nombre d'enregistrements rayés La fonction <Source>.NbEnr permet de connaître le nombre d'enregistrements rayés dans le fichier de données. Remarque : Par compatibilité avec WEBDEV 1.5/WINDEV 5.5, il est aussi possible de connaître le nombre d'enregistrements rayés grâce à la variable h.NbSup. Version du fichier de données En cas de succès de la fonction <Source>.Raye, le numéro de version du fichier de données est modifié. Ce numéro de version est donné par la fonction <Source>.Version. Rayer un enregistrement à partir d'une requête Il est possible de rayer un enregistrement : - soit uniquement dans le résultat de la requête.
- soit directement dans les fichiers 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>.Raye n'est utilisable que sur les requêtes mono-fichier. Attention : - Il est impossible de rayer 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.
Cas particuliers - Gestion des blocages :
Si un problème de blocage apparaît lors de la "rayure" d'un enregistrement (tentative de rayure d'un enregistrement bloqué en écriture par exemple), l'enregistrement n'est pas modifié et la fonction HErreurBlocage renvoie Vrai. - Gestion de l'intégrité référentielle
Si la gestion de l'intégrité référentielle est active (fonction <Variable Connexion>.GèreIntégrité), et si l'intégrité n'est pas vérifiée lors de la suppression, la fonction <Source>.Raye n'est pas exécutée. Il est nécessaire de tester la fonction HErreurIntégrité après la fonction <Source>.Raye. - Enregistrements supprimés
La fonction <Source>.Raye ne doit pas être appelée sur un enregistrement précédemment supprimé.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|