FORUMS PROFESSIONNELS
WINDEV
,
WEBDEV
et
WINDEV Mobile
Accueil
|
Messages récents
|
Connexion
|
Déconnexion
|
Français
Accueil
→
WINDEV 2024
→
incompréhension sur hfiltre ???
incompréhension sur hfiltre ???
Débuté par mlion, 30 jan. 2006 16:27 - 6 réponses
Connectez-vous…
mlion
#1
Posté le 30 janvier 2006 - 16:27
Description du phénomène sur :
base Oracle version 8.. via accès natif
Je passe un code "moulinette" comme celui-ci dessous pour mettre un champ dans un autre sur chaque ligne et voilà que seulement quelques enregistrements ( 1200 ) sont modifiés ! Aucun message d'erreur est remonté !
Au final je me retrouve avec des code "NOUVEL" a NULL !!!
Le même code sur une base HF modifie toutes les lignes (+ 10 000) de Prod_finis avec ID_Entite = 21
Je ne comprends pas !
Avez-vous eu déjà ce genre de problème via l'accès natif ?
Merci.
Michel
Code :
MA_CLE est une chaîne = HFiltre(Prod_Finis,ID_Entite,21,21) //sélection sur ID_Entite
HLitPremier(Prod_Finis,MA_CLE)
TANTQUE PAS HEnDehors(Prod_Finis)
Prod_Finis.NOUVEL = Prod_Finis.ID_PF
SI PAS HModifie(Prod_Finis) ALORS
Erreur("ERREUR " + HErreurInfo(hErrComplet))
SINON
HModifie(Prod_Finis)
Trace(Prod_Finis.Code_PF_PSF + Prod_Finis.Conditionnement + Prod_Finis.Groupe +TAB + Prod_Finis.ID_Entite)
FIN
HLitSuivant(Prod_Finis,MA_CLE)
FIN
HDésactiveFiltre(Prod_Finis)
Signaler
0
0
mlion
#2
Posté le 30 janvier 2006 - 06:51
Bonsoir
Je suis d'accord avec le deuxième HModifie -> dans le code original il n'y ai pas !
Je suis aussi d'accord sur le fait que la requête Update fonctionne, mais là où je ne suis pas d'accord c'est que via l'accès natif on doit pouvoir faire de genre de traitement.
Normalement dans ma table j'ai 11000 lignes à modifier et avec le filtre je ne passe que sur 1800 lignes !
J'ai également fait le traitement suivant :
fait une requête "Select " avec condition sur mon id_entite j'ai bien mes 11000 lignes
je parcours ligne à ligne ma requête et modifie le champ voulu. Résultat des courses j'ai là environ 1600 lignes de modifiées.
Je n'y comprend rien !!! 3 méthodes de modifications de tables et trois résultats différents.
Merci.
Michel.
Signaler
0
0
info
#3
Posté le 30 janvier 2006 - 09:17
De plus, c'est nettement plus performant de tout modifier d'une volée que de lire-> modifier->relire chaque enregistrement...
Si vous tenez vraiment à utiliser les fonctions H, essayez peut être la syntaxe POUR TOUT AVEC.
Signaler
0
0
mlion
#4
Posté le 30 janvier 2006 - 10:09
J'ai essayé aussi la syntaxe POUR TOUT .... AVEC et le résultat des modifications est identique à un HFILTRE !
Je suis d'accord sur le principe d'une requête pour tout modifier, mais ma crainte vient du fait que je ne compte pas utiliser systématiquement des requêtes pour mes traitements, d'ailleurs c'est pour celà que ma société a fait l'achat de l'accès natif !
Michel.
Signaler
0
0
info
#5
Posté le 30 janvier 2006 - 15:12
bizarre...
Le hmodifie du SINON c'est pour quoi?
Signaler
0
0
guest
#6
Posté le 30 janvier 2006 - 17:16
salut
ce serait plus simple de faire 1 seule requête que de faire une boucle pour Oracle
Signaler
0
0
f.demilly
#7
Posté le 30 janvier 2006 - 17:28
Juste une petite remarque, dans ce code le deuxième hModifie ne sert à rien:
...
SI PAS HModifie(Prod_Finis) ALORS
Erreur("ERREUR " + HErreurInfo(hErrComplet))
SINON
HModifie(Prod_Finis)
...
Sinon puisque tu utilises une base oracle, pourquoi ne pas passer par une requête SQL ?
Si pas SqlExec("Update Prod_Finis set Prod_Finis.NOUVEL = Prod_Finis.ID_PF where ID_Entite = '21'","reqmaj") alors
SqlInfoGene("reqmaj")
Erreur(Sql.MesErreur)
Fin
SqlFerme("reqmaj")
Sinon je n'ai pas de réponse à ta question, j'ai toujours eut moins de mal avec le SQL qu'avec les ordres h* !
Frédéric.
Signaler
0
0
→ Revenir à WINDEV 2024
WINDEV 2024
WINDEV 2024
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
WINDEV (précédentes versions)
WEBDEV (précédentes versions)
WEBDEV (précédentes versions)
WINDEV Mobile (précédentes versions)
WINDEV Mobile (précédentes versions)
Etats & Requêtes
Etats & Requêtes
Hors-sujet
Hors-sujet
Outils
Outils
WINDEV 26
WINDEV 2024
WINDEV 2024
WINDEV 25
WEBDEV 2024
WEBDEV 2024
WINDEV Mobile 2024
WINDEV (précédentes versions)
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