PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE


  • Gestion des Identifiants automatiques
  • Réutilisation des enregistrements supprimés ou libérés
  • Version du fichier de données après un ajout
  • Ajout d'un enregistrement dans une requête
  • Ajout d'enregistrements dans une vue
  • Parcours et ajout d'enregistrements
  • Problème de lenteur lors du premier ajout ou de la première suppression dans un fichier de données HFSQL
  • Ajout dans une base de données au format Hyper File 5.5
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
HDupliqueEnregistrement (Fonction)
En anglais : HDuplicateRecord
ODBCHFSQLNon disponible avec ces types de connexion
Duplique l'enregistrement lu dans un fichier de données : l'enregistrement présent en mémoire est ajouté dans le fichier de données (la requête ou la vue). Les index correspondant à toutes les clés utilisées dans le fichier de données sont mis à jour automatiquement. Les mémos éventuels sont ajoutés si la gestion des mémos est active (fonction HGèreMémo).
Après l'exécution de la fonction HDupliqueEnregistrement :
  • Une gestion automatique des erreurs est disponible pour plusieurs types d'erreurs : 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.
  • Si la gestion des doublons est activée et si le fichier de données contient une clé unique, la fonction HErreurDoublon renvoie Vrai si la valeur de la clé ajoutée n'est pas unique. L'enregistrement n'est pas ajouté.
  • L'enregistrement ajouté devient l'enregistrement en cours. L'identifiant automatique est automatiquement renseigné. Par défaut, le parcours en cours n'est pas affecté.
Note : La totalité de l'enregistrement en mémoire (le contenu de l'enregistrement précédemment lu) est écrit dans le fichier de données.
Remarques :
  • Cette fonction peut être utilisée également sur une vue ou sur une requête.
  • La fonction HDupliqueEnregistrement est identique à la fonction HAjoute.
Versions 21 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Remarque : A partir de la version 19, HFSQL est le nouveau nom de HyperFileSQL.
Exemple
// Duplique l'enregistrement en cours
HDupliqueEnregistrement(Client)
Syntaxe
<Résultat> = HDupliqueEnregistrement([<Nom du fichier> [, <Options>]])
<Résultat> : Booléen
  • Vrai si l'enregistrement a été ajouté,
  • Faux en cas de problème (erreur d'intégrité, de doublons, ...). La fonction HErreur permet d'identifier l'erreur.
<Nom du fichier> : Chaîne de caractères optionnelle (avec ou sans guillemets)
Nom du fichier de données, de la vue ou de la requête manipulé. Si ce nom n'est pas spécifié, la fonction HDupliqueEnregistrement va manipuler le dernier fichier de données utilisé par la dernière fonction de gestion HFSQL (fonction commençant par la lettre H).
<Options> : Constante optionnelle
Permet de paramétrer :
  • l'influence de l'ajout sur le parcours en cours.
  • le mode de calcul de l'identifiant automatique. Pour plus de détails, consultez Gestion de l'identifiant automatique lors d'un ajout.
  • le mode de blocage de l'enregistrement ajouté.
    • Windows Mobile Le blocage d'enregistrement est disponible uniquement avec des fichiers de données HFSQL Client/Serveur ou manipulés par un Accès Natif. Il n'est pas possible de bloquer un enregistrement HFSQL Mobile. Cette limitation est due au système d'exploitation du Pocket PC.
    • PHP La gestion des blocages n'est pas disponible en PHP.
    • AndroidWidget Android La gestion des blocages n'est pas disponible sur les bases de données SQLite.
    • Java Accès par JDBC : La gestion des blocages n'est pas disponible sur les bases de données accédées par JDBC.
  • la gestion des doublons.
  • la gestion de l'intégrité.
Hyper File 5.5 Ce paramètre n'est pas pris en compte.
hAffecteParcoursInfluence de l'ajout sur le parcours : L'ajout affecte le parcours.
Par exemple, la fonction HLitSuivant utilisée après la fonction HDupliqueEnregistrement positionne sur l'enregistrement suivant l'enregistrement ajouté.
La constante hAffecteParcours est prioritaire sur la constante hEcritureDéfaut.
hBlocageNon (valeur par défaut)Mode de blocage de l'enregistrement ajouté : Aucun blocage (même si la fonction HDébutVerrou a été utilisée) : l'enregistrement ajouté ne sera pas bloqué.
AndroidWidget AndroidPHP Cette constante n'est pas disponible.
Java Accès par JDBC : Cette constante n'est pas disponible.
hBlocageEcritureMode de blocage de l'enregistrement ajouté : Blocage en écriture : l'enregistrement ajouté sera bloqué en écriture. Cet enregistrement pourra être lu par une autre application mais ne pourra pas être modifié par une autre application. Seule l'application en cours pourra le modifier ou le débloquer.
Windows Mobile Cette constante est disponible uniquement pour HFSQL Client/Serveur et les Accès Natifs. Cette constante n'est pas disponible pour HFSQL Mobile. En effet, il n'est pas possible de bloquer un enregistrement. Cette limitation est due au système d'exploitation du Pocket PC.
AndroidWidget AndroidPHP Cette constante n'est pas disponible.
Java Accès par JDBC : Cette constante n'est pas disponible.
hBlocageLectureEcritureMode de blocage de l'enregistrement ajouté : Blocage en lecture/écriture : l'enregistrement ajouté sera bloqué en lecture et en écriture. Cet enregistrement ne pourra ni être lu ni être modifié par une autre application. Seule l'application en cours pourra le modifier, le lire ou le débloquer.
Windows Mobile Cette constante est disponible uniquement pour HFSQL Client/Serveur et les Accès Natifs. Cette constante n'est pas disponible pour HFSQL Mobile. En effet, il n'est pas possible de bloquer un enregistrement. Cette limitation est due au système d'exploitation du Pocket PC.
AndroidWidget AndroidPHP Cette constante n'est pas disponible.
Java Accès par JDBC : Cette constante n'est pas disponible.
hEcritureDéfaut
(valeur par défaut)
Influence de l'ajout sur le parcours : L'ajout n'affecte pas le parcours en cours.
Par exemple, la fonction HLitSuivant utilisée après la fonction HDupliqueEnregistrement positionne sur l'enregistrement suivant l'enregistrement en cours avant l'ajout.
La constante hAffecteParcours est prioritaire sur la constante hEcritureDéfaut.
hFixeIdAutoMode de calcul de l'identifiant automatique : L'identifiant automatique n'est pas calculé lors de l'ajout : la valeur de l'identifiant sera celle mémorisée au moment de l'ajout.
La prochaine valeur de l'identifiant calculée par le moteur HFSQL correspondra à la plus grande valeur de l'identifiant dans le fichier +1.
Si les constantes hFixeIdAuto et hForceIdAuto sont utilisées en même temps, une erreur WLangage est générée.
Connecteurs Natifs (Accès Natifs) SQLServer CE : La constante hFixeIdAuto ne peut pas être utilisée.
hForceIdAutoMode de calcul de l'identifiant automatique : L'identifiant automatique n'est pas calculé lors de l'ajout. L'identifiant correspond :
  • soit à la valeur affectée à la rubrique par programmation (par exemple CLCLEUNIK = 7)
  • soit à la valeur par défaut de l'identifiant spécifiée dans l'éditeur d'analyses (si le fichier de données vient d'être ouvert, sans lecture d'enregistrement)
  • soit à la valeur de l'identifiant présent en mémoire (valeur de l'identifiant pour le dernier enregistrement lu dans le fichier de données).
Après l'ajout de l'enregistrement, le prochain identifiant automatique calculé par défaut par le moteur HFSQL sera calculé sans tenir compte de la valeur ajoutée par hForceIdAuto.
Si les constantes hFixeIdAuto et hForceIdAuto sont utilisées en même temps, une erreur WLangage est générée.
Connecteurs Natifs (Accès Natifs) SQLServer CE : La constante hForceIdAuto ne peut pas être utilisée.
hIgnoreDoublonMode de gestion des doublons : Ignore le contrôle des doublons pour cette opération, même si le contrôle automatique des doublons est branché (fonction HGèreDoublon).
Si les constantes hIgnoreDoublon et hVérifieDoublon sont utilisées en même temps, une erreur WLangage est générée.
AndroidWidget AndroidPHP Cette constante n'est pas disponible.
Java Accès par JDBC : Cette constante n'est pas disponible.
hIgnoreIntégritéMode de gestion de l'intégrité : Ignore le contrôle d'intégrité sur cette opération d'ajout, même si le contrôle de l'intégrité automatique est branché (fonction HGèreIntégrité).
Si les constantes hIgnoreIntégrité et hVérifieIntégrité sont utilisées en même temps, une erreur WLangage est générée.
AndroidWidget AndroidPHP Cette constante n'est pas disponible.
Java Accès par JDBC : Cette constante n'est pas disponible.
hVérifieDoublonMode de gestion des doublons : Contrôle les doublons pour cette opération, même si le contrôle des doublons est débranché (fonction HGèreDoublon).
Si les constantes hIgnoreDoublon et hVérifieDoublon sont utilisées en même temps, une erreur WLangage est générée.
AndroidWidget AndroidPHP Cette constante n'est pas disponible.
Java Accès par JDBC : Cette constante n'est pas disponible.
hVérifieIntégritéMode de gestion de l'intégrité : Contrôle l'intégrité de l'opération, même si le contrôle de l'intégrité automatique est débranché (fonction HGèreIntégrité).
Si les constantes hIgnoreIntégrité et hVérifieIntégrité sont utilisées en même temps, une erreur WLangage est générée.
AndroidWidget AndroidPHP Cette constante n'est pas disponible.
Java Accès par JDBC : Cette constante n'est pas disponible.
Remarques

Gestion des Identifiants automatiques

Par défaut, lors de l'ajout d'un enregistrement dans un fichier de données, la rubrique de type "Identifiant automatique" est automatiquement mise à jour. Il n'est pas nécessaire de relire l'enregistrement pour connaître la valeur de l'identifiant automatique. Il suffit d'utiliser la syntaxe <Nom Fichier>.<Nom rubrique Identifiant automatique>.
Les constantes hForceIdAuto et hFixeIdAuto permettent de modifier le comportement par défaut de l'identifiant automatique.
Pour plus de détails sur la gestion de l'identifiant automatique lors de l'ajout d'un enregistrement, consultez Gestion de l'identifiant automatique lors d'un ajout.
AndroidWidget AndroidJavaPHPOLE DBConnecteurs Natifs (Accès Natifs) Cas particulier
  • Si la base de données génère un identifiant automatique, le moteur HFSQL conserve cette valeur. Si les constantes hForceIdAuto ou hFixeIdAuto sont précisées, le moteur HFSQL remplace la valeur générée par la valeur voulue.
    Remarque : la constante hForceIdAuto équivaut à hFixeIdAuto : l'identifiant automatique calculé par le moteur HFSQL lors du prochain ajout sera unique dans le fichier de données.
  • Si la base de données ne génère pas d'identifiant automatique, le moteur HFSQL génère la valeur et l'affecte à l'identifiant automatique.
WINDEVWEBDEV - Code ServeuriPhone/iPadWindows MobileUniversal Windows 10 AppJavaPHPAjaxHFSQLHFSQL Client/ServeurHyper File 5.5

Réutilisation des enregistrements supprimés ou libérés

Lors de l'ajout d'un nouvel enregistrement, le moteur HFSQL optimise le remplissage du fichier de données. L'espace correspondant aux enregistrements supprimés ou libérés est utilisé prioritairement lors de l'ajout d'un nouvel enregistrement.
Les enregistrements rayés ne sont pas ré-utilisés.
WINDEVWEBDEV - Code ServeuriPhone/iPadWindows MobileUniversal Windows 10 AppJavaPHPAjaxHFSQLHFSQL Client/ServeurHyper File 5.5

Version du fichier de données après un ajout

Si l'enregistrement a été ajouté au fichier de données (pas d'erreur de doublons ou d'intégrité), le numéro de version du fichier de données est modifié. Pour connaître le numéro de version, utilisez la fonction HVersion.

Ajout d'un enregistrement dans une requête

L'ajout d'un enregistrement dans une requête peut être effectué :
  • 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), l'ajout d'enregistrement dans une requête n'est possible que pour les requêtes mono fichier. Les rubriques calculées précisées lors de l'ajout sont ignorées. Elles sont automatiquement calculées.
Attention :
  • Tout ajout dans une requête utilisant les groupes ou les agrégats est interdit.
  • 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.
WINDEVWEBDEV - Code ServeuriPhone/iPadWindows MobileUniversal Windows 10 AppAjaxHFSQLHFSQL Client/Serveur

Ajout d'enregistrements dans une vue

Il est possible d'ajouter des enregistrements dans une vue réalisée sur des fichiers de données au format HFSQL Classic. Ces enregistrements sont uniquement ajoutés en mémoire. Pour les ajouter dans le fichier de données lié à la vue (cas d'une vue simple par exemple), il faut utiliser la fonction HVueVersFichier.

Parcours et ajout d'enregistrements

Il est possible de paramétrer l'influence de l'ajout d'un enregistrement pendant le parcours d'un fichier de données (constantes hEcritureDéfaut et hAffecteParcours). Le fonctionnement des versions précédentes est conservé grâce à la constante hAffecteParcours).
JavaPHPOLE DBConnecteurs Natifs (Accès Natifs) Cas particuliers : Si l'ajout est réalisé pendant un parcours, le nouvel enregistrement sera visible dans le parcours en cours uniquement. Si d'autres parcours ont été définis sur cette base de données, le nouvel enregistrement ne sera visible qu'après ré-initialisation de ces parcours.

Problème de lenteur lors du premier ajout ou de la première suppression dans un fichier de données HFSQL

Un problème de lenteur inexpliqué peut apparaître lors du premier accès à un enregistrement d'un fichier de données HFSQL. Pour corriger ce problème :
  • Désactivez l'antivirus pour l'analyse des fichiers .FIC, .NDX, .MMO et .REP.
  • Désactivez l'option "Restauration du système" sous Windows XP.
WINDEVWEBDEV - Code ServeurAjaxHyper File 5.5

Ajout dans une base de données au format Hyper File 5.5

Si vous utilisez la fonction HDupliqueEnregistrement avec une base de données au format Hyper File 5.5 :
  • Les options d'ajout (paramètre <Options>) ne sont pas prises en compte.
  • Les rubriques de type TEXTE seront automatiquement complétées par des espaces.
  • La fonction HDupliqueEnregistrement ne peut pas être utilisée avec une vue créée sur des fichiers de données au format Hyper File 5.5.
Composante : wd240hf.dll
Version minimum requise
  • Version 18
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire