FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
incompréhension sur hmodifie et hsupprime
incompréhension sur hmodifie et hsupprime
Débuté par LION, 24 juin 2014 23:56 - 4 réponses
Connectez-vous…
LION
#1
Posté le 24 juin 2014 - 23:56
Bonjour,
J'exécute une requête SQL sur plusieurs fichier HF. Cette requête me sert de table temporaire.
Je fais ensuite le traitement simple suivant :
Hlitpremier(ma_requete, "ma_cle_parcours,hsansrafraichir)
TANTQUE PAS HEnDehors(ma_requete)
si .... ma_condition alors
h(modifie)
fin
si ... mon autre condition alos
h(supprime)
hlitsuivant(ma_requete,"ma_cle_parcours")
Et bien pas d'erreur mais en fait le hsupprime n'a pas fonctionné ????
Je le constate en lisant la requête avant et après le traitement -> les enregistrements supprimés ne le sont pas.
Aucune erreur !
Je suis en fait obligé de faire une seconde passe
Pout tout ma_requete
si mon autre condition alors
hsupprime
fin
Je ne comprends pas pourquoi il faut faire 2 lectures pour faire une suppression ou une modification.
PS : je n'utilise pas ma requête pour faire des modifcation ou suppression dans des fichiers HF, je m'en sert comme fichier temporaire c'est tout....
Signaler
0
0
Jean-Pierre BLOCH
#2
Membre enregistré
1 939 messages
Popularité : +53 (65 votes)
Posté le 25 juin 2014 - 07:29
Bonjour,
un peu court h(supprime)...
Quel est le code ? hSupprime (ma_requete) ou hSupprime(mon_fichier) ?
--
Bon dev.
Jean-Pierre
Signaler
0
0
Jean-Pierre BLOCH
#3
Membre enregistré
1 939 messages
Popularité : +53 (65 votes)
Posté le 25 juin 2014 - 07:36
Re-bonjour,
Infos complémentaires extraites de l'aide en ligne :
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 :
• Il est impossible de supprimer un enregistrement dans une requête utilisant les groupes ou les agrégats.
--
Bon dev.
Jean-Pierre
Signaler
0
0
Joel
#4
Posté le 25 juin 2014 - 11:30
Bonjour,
Regarde l'aide de la fonction Hsupprime ou Hajoute.
La syntaxe normale de la fonction Hsupprime, c'est :
bool = Hsupprime(... ... )
si bool = faux alors
erreur ( HerreurInfo() )
Fin
Tu as choisi de ne pas tester le code retour de la fonction Hsupprime(), et de ne pas afficher le message donné par HerreurInfo() ... et tu te demandes pourquoi ça ne marche pas ?
Applique la syntaxe complète, teste le code retour, et tu auras toutes les réponses à tes questions.
Ou au moins, tu auras essayé.
Signaler
0
0
mlion
#5
Membre enregistré
326 messages
Popularité : +15 (19 votes)
Posté le 26 juin 2014 - 16:36
Bonjour,
réponse à Jean-Pierre : je fais une requête multi fichiers et manipule cette requête (fichier temporaire). Je fais mon hsupprime(ma_requete) que sur la requête. Je n'utilise pas la constante Hmodifie(fichier). Logiquement je ne supprime que le contenu des données la requête, je me moque des données de la base.
Réponse à Joël : je ne l'ai pas mis dans mon post mais j'ai tracé le hsupprime ... tout se passe bien sans aucune erreur ! C'est après en relisant la requête que je me rends compte que les enregistrements sont encore là. Un deuxième passage pour supprimer puis une relecture confirma alors la suppression. C'est là le problème : le Hsupprime ne retourne aucune erreur -> donc logiquement enregistement supprimé mais en fait rien n'est fait.
J'ai une idée derrière la tête que me dit que le parcours de la requête sur une clé de parcours avec un hsupprime ne fonctionne pas. Par contre le parcours de la requête sans clé de parcours permet la suppression !
Michel.
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Hors-sujet
Outils
Français
English
Español
Portuguesa
Fermer cette fenêtre
Type de recherche
Uniquement les sujets
Tous les messages
Période de recherche
Date indifférente
Moins d'une heure
Moins de 24 heures
Moins d'une semaine
Moins d'un mois
Moins d'un an
Annuler
Aperçu de votre message
Ajouter une image
Importer une image depuis une URL
Envoyer une image depuis un fichier de votre disque
Déposez ici un fichier ou cliquez sur "Parcourir..."
ou
Annuler
0%
WLangage
SQL
XML, HTML
JAVA, Javascript
Texte