ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

This content has been translated automatically.  Click here  to view the French version.
Help / WLanguage / Managing databases / HFSQL / HFSQL functions
  • Example: Error customization
HOnError (Example)
Example: Error customization
WINDEVWEBDEV - Server codeUser code (UMC)AjaxHyper File 5.5OLE DB The following example is used to customize the management of errors with two procedures:
  • OnLockError(), which allows customizing lock errors
  • OnOtherError(), which allows customizing all the other types of errors
//------ Procédure à appeler lors d'une erreur de blocage
PROCEDURE SurErreurBlocage()

IF YesNo( "Une erreur de blocage a été rencontrée" + CR + ...
	"Voulez-vous retenter l'opération ?") = True THEN
         // On réessaye l'opération qui a échoué
         RETURN opRetry
END
// On rend la main à l'utilisateur
RETURN opEndProcess
//------- Procédure à appeler pour les erreurs autres que les erreurs de blocage
PROCEDURE SurAutreErreur()

SWITCH HError(hErrCurrent)
	CASE 70015// Erreur d'intégrité
	// Traitement spécifique aux erreurs d'intégrité
	// par exemple, afficher l'erreur par Erreur(HErreurInfo())
	// terminer le traitement en cours
	...
	// On rend la main à l'utilisateur
	RETURN opEndProcess

	CASE 70100 // Erreur de blocage
	// Traitement spécifique aux erreurs de blocage
	// par exemple, afficher l'erreur par Erreur(HErreurInfo())
	// terminer le traitement en cours
	...
	// On rend la main à l'utilisateur
	RETURN opEndProcess

	CASE 70010// Erreur de doublon
	// Traitement spécifique aux erreurs de doublon
	// par exemple, afficher l'erreur par Erreur(HErreurInfo())
	// terminer le traitement en cours
	...
	// On rend la main à l'utilisateur
	RETURN opEndProcess

	CASE 70700// Erreur de conflit de modification
	// Traitement spécifique aux erreurs de conflit de modification
	// par exemple, afficher l'erreur par Erreur(HErreurInfo())
	// terminer le traitement en cours
	...
	// On rend la main à l'utilisateur
	RETURN opEndProcess

	CASE 70710// Erreur de valeur obligatoire
	// Traitement spécifique aux erreurs de valeur obligatoire
	// par exemple, afficher l'erreur par Erreur(HErreurInfo())
	// terminer le traitement en cours
	...
	// On rend la main à l'utilisateur
	RETURN opEndProcess

	CASE 70720// Erreur de réindexation en cours
	// Traitement spécifique aux erreurs de réindexation en cours
	// par exemple, afficher l'erreur par Erreur(HErreurInfo())
	// terminer le traitement en cours
	...
	// On rend la main à l'utilisateur
	RETURN opEndProcess

	CASE 70022// Erreur de mot de passe
	// Traitement spécifique aux erreurs de mot de passe
	// par exemple, afficher l'erreur par Erreur(HErreurInfo())
	// ou refixer le mot de passe du fichier en cause 
	// par HPasse(HErreurInfo(hErrFichier), NouveauMotDePasse)
	// terminer le traitement en cours
	...
	// On rend la main à l'utilisateur
	RETURN opEndProcess
END
//------- Personnalisation des erreurs (dans le code d'initialisation du projet par exemple)
HOnError("*", hErrLock, "SurErreurBlocage")
HOnError("*", hErrIntegrity + hErrDuplicates + ...
	hErrModify + hErrPassword, "SurAutreErreur")
//------- Ajout d'un enregistrement
// pas besoin de tester le retour, car si une erreur est rencontrée, 
// l'ajout sera retenté ou le traitement sera abandonné
HAdd(CLIENT)
Minimum version required
  • Version 9
Comments
Click [Add] to post a comment

Last update: 03/28/2025

Send a report | Local help