Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > WinDev > HyperFileSQL
HyperFileSQL HyperFileSQL est un système de gestion de base de données relationnel exploité par les logiciels WinDev, WebDev et WinDev Mobile.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 29/09/2012, 23h22   #1
princesse_sissi
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 18
Points : 6
Points : 6
Par défaut Problèmes HerreurDoublon() urgent !

Bonsoir tous le monde,
Je suis débutante en Windev et je cherche à gérer ma BDD hyperfile en utilisant la fonction HerreurDoublon() ... mais cette fonction me renvoi à chaque fois FAUX dans tous les cas.

j'utilise cette fonction dans une procédure générale appelée par un trigger !!

SVP aidez-moi, c'est urgent!

princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2012, 23h58   #2
miripesage
Membre Expert
 
Avatar de miripesage
 
Homme Said
pesage electronique
Inscription : novembre 2009
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Said
Localisation : Algérie

Informations professionnelles :
Activité : pesage electronique
Secteur : Industrie

Informations forums :
Inscription : novembre 2009
Messages : 697
Points : 1 114
Points : 1 114
bonsoir,
Sans plus de précision(sans code), il est difficile de savoir ce qui se passe. Postez votre code svp.
__________________
Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!
miripesage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 00h12   #3
princesse_sissi
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 18
Points : 6
Points : 6
Citation:
Envoyé par miripesage Voir le message
bonsoir,
Sans plus de précision(sans code), il est difficile de savoir ce qui se passe. Postez votre code svp.
Alors le voici:
Citation:
PROCEDURE proctrigger()

SELON Majuscule(H.FonctionTrigger)

CAS "HAJOUTE"

SI Trace ALORS Trace("Trigger avant : Ajout")

SI HErreurDoublon()=Vrai ALORS
//abondon de l'action
H.AFaire="A"
Erreur("Doublons: Enregistrement Existant !")
SINON
//ajouter
Dialogue("Ajout Réussi !")
FIN

CAS "HMODIFIE"
SI Trace ALORS Trace("Trigger avant : Modification")
SI HErreurDoublon()=Vrai ALORS
//abondon de l'action
H.AFaire="A"
Erreur("Integrite:: Enregistrement Existant")
SINON
//modifier
Dialogue("Modification Réussi !")
FIN


CAS "HSUPPRIME"
SI Trace ALORS Trace("Trigger avant : Suppression")
//1 : &Supprimer
//2 : &Ne pas supprimer
SELON Dialogue("voulez-vous supprimer cette enregistement ?")
// supprimer
Erreur("Erreur: "+HErreurIntégrité())
CAS 1
SI HErreurIntégrité()=Vrai ALORS
//abondon de l'action
H.AFaire="A"
Dialogue("Impossible: Enregistrement Lié !")

SINON
Dialogue("Suppression Finie !")
//sortir selon
FIN

// ne pas supprimer
CAS 2
//abondon de l'action
H.AFaire="A"


FIN
FIN
princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2012, 10h05   #4
miripesage
Membre Expert
 
Avatar de miripesage
 
Homme Said
pesage electronique
Inscription : novembre 2009
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Said
Localisation : Algérie

Informations professionnelles :
Activité : pesage electronique
Secteur : Industrie

Informations forums :
Inscription : novembre 2009
Messages : 697
Points : 1 114
Points : 1 114
Bonjour, votre code est anormale : revoyez ce qui est en rouge :

Citation:
Envoyé par princesse_sissi Voir le message
Alors le voici:
PROCEDURE proctrigger()

SELON Majuscule(H.FonctionTrigger)

CAS "HAJOUTE"

SI Trace ALORS Trace("Trigger avant : Ajout")

SI HErreurDoublon()=Vrai ALORS
//abondon de l'action
H.AFaire="A"
Erreur("Doublons: Enregistrement Existant !")
SINON
//ajouter
Dialogue("Ajout Réussi !")
FIN

CAS "HMODIFIE"
SI Trace ALORS Trace("Trigger avant : Modification")
SI HErreurDoublon()=Vrai ALORS
//abondon de l'action
H.AFaire="A"
Erreur("Integrite:: Enregistrement Existant")
SINON
//modifier
Dialogue("Modification Réussi !")
FIN


CAS "HSUPPRIME"
SI Trace ALORS Trace("Trigger avant : Suppression")
//1 : &Supprimer
//2 : &Ne pas supprimer
SELON Dialogue("voulez-vous supprimer cette enregistement ?")
// supprimer
Erreur("Erreur: "+HErreurIntégrité())
CAS 1
SI HErreurIntégrité()=Vrai ALORS
//abondon de l'action
H.AFaire="A"
Dialogue("Impossible: Enregistrement Lié !")

SINON
Dialogue("Suppression Finie !")
//sortir selon
FIN

// ne pas supprimer
CAS 2
//abondon de l'action
H.AFaire="A"


FIN
FIN
__________________
Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!
miripesage est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 30/09/2012, 12h34   #5
princesse_sissi
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 18
Points : 6
Points : 6
Bonjour,
Non, ce qui est en rouge :

TRACE: pour afficher seulement une fenetre ou on pourra voir quelle fonction est en cours

Dialogue: pour afficher une fenetre avec l'utilisateur afin de savoir si tout a marcher bien.


Mon problème est avec :HerreurDoublon, HerreurIntegrite renvoie toujours FAUX!
princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2012, 08h53   #6
frenchsting
Expert Confirmé
 
Avatar de frenchsting
 
Homme Claude
Développeur informatique
Inscription : juin 2003
Messages : 1 806
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2003
Messages : 1 806
Points : 3 151
Points : 3 151
Bonjour,

à quel moment fais tu appel à ta procédure proctrigger() ?
Elle doit être "mise en place" avec HDécritTrigger() et tu dois l'appeler après les hajoute(), hmodifie(), hsupprime().
Attention aussi tu dois gérer le hintégrité mais aussi le herreurdoublon juste après l'opération sous peine de "fausser' les valeurs retournées.
__________________
Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...
Pas de question par MP s'il vous plait. Le forum est fait pour cela...

Make it real not fantasy
frenchsting est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2012, 14h00   #7
princesse_sissi
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 18
Points : 6
Points : 6
Citation:
Envoyé par frenchsting Voir le message
Bonjour,

à quel moment fais tu appel à ta procédure proctrigger() ?
Elle doit être "mise en place" avec HDécritTrigger() et tu dois l'appeler après les hajoute(), hmodifie(), hsupprime().
Attention aussi tu dois gérer le hintégrité mais aussi le herreurdoublon juste après l'opération sous peine de "fausser' les valeurs retournées.
Bonjour,
Merci de répondre!
Effectivement:
ResultatTrigger = HDécritTrigger("*","HAJOUTE,HMODIFIE,HSUPPRIME",proctrigger, hTriggerAvant)

Et à chaque appel de l'une des 03 fonctions précédente, la procédure démarre ...

Mais, les fonctions de gestion d’intégrité et des doublons renvoi faux

Je donne mon code:
Code du projet générale
Citation:
// Dans le code d'initialisation du projet
LOCAL
ResultatTrigger est un booléen


// changer le mode de tous les fichiers
//ici, tous les fichier en mode multi-utilisateurs
HMode(hModeMulti)

// Création du Trigger AVANT pour tous les fichiers de l'analyse
ResultatTrigger = HDécritTrigger("*","HAJOUTE,HMODIFIE,HSUPPRIME",proctrigger, hTriggerAvant)

// Avec "VerifDroitUtilisateur" une procédure globale du projet
SI ResultatTrigger = Faux ALORS
DélaiAvantFermeture(1000)
Erreur("Erreur sur un trigger : " + HErreurInfo)
RETOUR
FIN
proctrigger est déjà donné avant ... (procédure globale)


Merci de me répondre !
princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2012, 15h05   #8
frenchsting
Expert Confirmé
 
Avatar de frenchsting
 
Homme Claude
Développeur informatique
Inscription : juin 2003
Messages : 1 806
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2003
Messages : 1 806
Points : 3 151
Points : 3 151
Il ne faudrait pas faire plutôt :
Code :
1
2
3
 
H.AFaire="A"
SI HErreurDoublon()=Vrai ALORS
Je n'ai jamais mis en oeuvre de trigger...
__________________
Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...
Pas de question par MP s'il vous plait. Le forum est fait pour cela...

Make it real not fantasy
frenchsting est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2012, 16h24   #9
miripesage
Membre Expert
 
Avatar de miripesage
 
Homme Said
pesage electronique
Inscription : novembre 2009
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Said
Localisation : Algérie

Informations professionnelles :
Activité : pesage electronique
Secteur : Industrie

Informations forums :
Inscription : novembre 2009
Messages : 697
Points : 1 114
Points : 1 114
Bonjour, puisque vous avez décider de gérer vous mëme les erreurs de doublon, intégrité,..., avez vous désactivé la gestion automatique des erreurs?
Si non, il faut ajouter dans l'initialisation du projet :

Code :
1
2
// Désactivation de la gestion automatique des erreurs 
HSurErreur("*",hErrTout,"")
__________________
Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!
miripesage est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 02/10/2012, 14h59   #10
princesse_sissi
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 18
Points : 6
Points : 6
Bonjour,
Merci pour vos réponses !

@ frenchsting:
Ceci juste pour éviter la fenêtre d'erreur de Windev n'a aucun impact sur HerreurDoublon()
Citation:
H.AFaire="A"
@miripesage:
Comme j'utilise herreurDoublon() alors la gestion est automatique avec des fonctions prédéfinies, et ce que je veux et d’arrêter l’opération(hajoute, hmodifie) et le message de windev pour que l'utilisateur soit alaise.
princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2012, 13h35   #11
frenchsting
Expert Confirmé
 
Avatar de frenchsting
 
Homme Claude
Développeur informatique
Inscription : juin 2003
Messages : 1 806
Détails du profil
Informations personnelles :
Nom : Homme Claude
Localisation : France, Meurthe et Moselle (Lorraine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : juin 2003
Messages : 1 806
Points : 3 151
Points : 3 151
Question : sur quelle version de windev es-tu ? Et sur quelle version de hf (classic ou CS) ?
__________________
Commencez toujours par là : et puis n'hésitez à passer par là : ou par un autre moteur de recherche...
Pas de question par MP s'il vous plait. Le forum est fait pour cela...

Make it real not fantasy
frenchsting est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2012, 16h30   #12
princesse_sissi
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 18
Points : 6
Points : 6
Citation:
Envoyé par frenchsting Voir le message
Question : sur quelle version de windev es-tu ? Et sur quelle version de hf (classic ou CS) ?

Windev 15
HyperFile Classic

Merci à vous !
princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2012, 17h17   #13
princesse_sissi
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 18
Points : 6
Points : 6
J'ai essayé ton code mais je suis entré dans une bouvle infinie ...
Sur le 1er coup herreurDoublon=0
Sinon du 02eme coup a l'infini =1




Merci
princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2012, 22h05   #14
miripesage
Membre Expert
 
Avatar de miripesage
 
Homme Said
pesage electronique
Inscription : novembre 2009
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Said
Localisation : Algérie

Informations professionnelles :
Activité : pesage electronique
Secteur : Industrie

Informations forums :
Inscription : novembre 2009
Messages : 697
Points : 1 114
Points : 1 114
Faites un essai avec ceci :

dans "initialisation du projet"
Code :
1
2
HSurErreur("*",hErrIntégrité+hErrDoublon+...
                hErrModification+hErrSuppression,"proctrigger")
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
PROCEDURE proctrigger()
 
SELON Majuscule(H.FonctionTrigger)
 
CAS "HAJOUTE"
 
SI Trace ALORS Trace("Trigger avant : Ajout")
 
SI HErreurDoublon()=Vrai ALORS
 // ON rend la main 
RENVOYER opFinTraitement
FIN
 
CAS "HMODIFIE"
SI Trace ALORS Trace("Trigger avant : Modification")
SI HErreurDoublon()=Vrai ALORS 
  // ON rend la main 
RENVOYER opFinTraitement
FIN
 
CAS "HSUPPRIME"
SI Trace ALORS Trace("Trigger avant : Suppression") 
//1 : &Supprimer
//2 : &Ne pas supprimer
SELON Dialogue("voulez-vous supprimer cette enregistement ?")
// supprimer 
 
CAS 1 
SI HErreurIntégrité()=Vrai ALORS
  RENVOYER opFinTraitement
FIN
 
// ne pas supprimer
CAS 2 
//abondon de l'action
RENVOYER opFinTraitement
 
 
FIN
FIN
__________________
Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!
miripesage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2012, 13h58   #15
princesse_sissi
Invité régulier
 
Femme
Étudiant
Inscription : avril 2011
Messages : 18
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2011
Messages : 18
Points : 6
Points : 6
Bonjour tous le monde,

Effectivement, j'ai résolu mon problème :
1/ Dans l'initialisation du projet
Code :
1
2
 
HSurErreur("*",hErrIntégrité+hErrDoublon+hErrModification,"proctrigger")
2/ Dans la procédure du tigger:
Code :
1
2
3
4
5
6
7
 
CAS "HAJOUTE"
		SI HErreurDoublon()=Vrai  ALORS
			Erreur("Doublons: Enregistrement Existant !")
			Ferme()
			 RENVOYER opFinTraitement 
		FIN
3/ Et enfin, pour optimiser un peu le code pour l'utilisateur:
Code :
1
2
3
4
5
6
 
	test=HAjoute(Affaire)
			//Msg d'ajout
			IF test=Vrai ALORS 
				Dialogue("Ajout Réussi !")
			FIN

Merci beaucoup pour votre aide à vous tous et spécialement à toi :
miripesage
princesse_sissi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/10/2012, 14h15   #16
miripesage
Membre Expert
 
Avatar de miripesage
 
Homme Said
pesage electronique
Inscription : novembre 2009
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Said
Localisation : Algérie

Informations professionnelles :
Activité : pesage electronique
Secteur : Industrie

Informations forums :
Inscription : novembre 2009
Messages : 697
Points : 1 114
Points : 1 114
Bonjour, alors appuyez sur et bon développement
__________________
Au travail, le plus difficile, c'est d'allumer la petite lampe du cerveau. Après, ça brûle tout seul!
miripesage est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h12.


 
 
 
 
Partenaires

Hébergement Web