|
|
|
|
|
- Désactivation de la technologie JITc
- Optimisation des appels externes
- Utilisation de la constante ForceDestructeurObjetNonDynamique pour forcer la destruction des objets non dynamiques
- Gestion des erreurs
ModeExécution (Fonction) En anglais : ExecutionMode Permet de : - connaître et/ou modifier le comportement de l'application / du site, lorsque certaines erreurs sont générées. Selon le mode d'exécution sélectionné, ces erreurs peuvent être ignorées, ou générer des messages d'erreur. Dans certains cas, la fonction ModeExécution permet de retrouver le comportement des versions précédentes.
- optimiser l'appel aux fonctions déclarées en externe. Permet d'optimiser la vitesse d'exécution de l'application dans 2 cas :
- Procédures déclarées en externes
- Codes compilés dynamiquement, appel d'une procédure globale ou locale du projet.
- savoir et/ou modifier le mode d'utilisation de la technologie JITc par l'application. La technologie JITc est utilisée par défaut par l'application. Il est uniquement possible de la désactiver.
- connaître et/ou modifier le mode de gestion des références faibles pour tous les objets instanciés.
SI EnModeTest() = Vrai ALORS
ModeExécution(modeNormal)
SINON
ModeExécution(modePermissif)
FIN
Syntaxe <Résultat> : Combinaison de constantes de type Entier Mode d'exécution actuel de l'application ou du site : | | AppelsExternesOptimisés | Optimise la gestion des appels externes de procédures. Ce paramètre est combiné avec une des deux constantes suivantes.
| DésactiveConversionAnsiUnicodeOptimisée | A partir de la version 29 Update 3, une conversion Ansi/Unicode optimisée a été mise en place afin d'accélérer les opérations qui manipulent des chaînes Ansi et Unicode. Cette nouvelle conversion limite également les risques de perte de caractères en cas d'alphabets différents. Cette constante permet de retrouver le fonctionnement précédent (notamment en cas d'erreur de type "Erreur interne lors d'une conversion Ansi/Unicode optimisée"). | DésactiveExécutionOptimisée | La technologie JITc (Just In Time compilation) est désactivée. | ForceDestructeurObjetNonDynamique | Force la destruction des objets non dynamiques (même si une référence forte a été prise). | modeAncienFonctionnementDurée | Les propriétés du type Durée conservent le fonctionnement de la version 12. | modeNormal | Les erreurs rencontrées génèrent des messages d'erreur. | modePermissif | Les erreurs rencontrées sont ignorées (mode WINDEV 5.5 ou WEBDEV 1.5). |
Modifier le mode d'exécution en cours Masquer les détails
<Résultat> = ModeExécution(<Nouveau mode d'exécution>)
<Résultat> : Constante de type Entier Mode d'exécution de l'application ou du site après modification. | | AppelsExternesOptimisés | Optimise la gestion des appels externes de procédures. Ce paramètre est combiné avec une des deux constantes suivantes.
| DésactiveConversionAnsiUnicodeOptimisée | A partir de la version 29 Update 3, une conversion Ansi/Unicode optimisée a été mise en place afin d'accélérer les opérations qui manipulent des chaînes Ansi et Unicode. Cette nouvelle conversion limite également les risques de perte de caractères en cas d'alphabets différents. Cette constante permet de retrouver le fonctionnement précédent (notamment en cas d'erreur de type "Erreur interne lors d'une conversion Ansi/Unicode optimisée"). | DésactiveExécutionOptimisée | La technologie JITc (Just In Time compilation) est désactivée. | ForceDestructeurObjetNonDynamique | Force la destruction des objets non dynamiques (même si une référence forte a été prise). | modeAncienFonctionnementDurée | Les propriétés du type Durée conservent le fonctionnement de la version 12. | modeNormal | Les erreurs rencontrées génèrent des messages d'erreur. | modePermissif | Les erreurs rencontrées sont ignorées (mode WINDEV 5.5 ou WEBDEV 1.5). |
<Nouveau mode d'exécution> : Constante de type Entier Nouveau mode d'exécution à appliquer. | | AppelsExternesOptimisés | Optimise la gestion des appels externes de procédures. Ce paramètre est combiné avec une des deux constantes suivantes.
| DésactiveConversionAnsiUnicodeOptimisée | A partir de la version 29 Update 3, une conversion Ansi/Unicode optimisée a été mise en place afin d'accélérer les opérations qui manipulent des chaînes Ansi et Unicode. Cette nouvelle conversion limite également les risques de perte de caractères en cas d'alphabets différents. Cette constante permet de retrouver le fonctionnement précédent (notamment en cas d'erreur de type "Erreur interne lors d'une conversion Ansi/Unicode optimisée"). | DésactiveExécutionOptimisée | Désactive la technologie JITc (Just In Time compilation). | ForceDestructeurObjetNonDynamique | Force la prise de référence faible pour tous les objets. | modeAncienFonctionnementDurée | Les propriétés du type Durée conservent le fonctionnement de la version 12. | modeNormal | Les erreurs rencontrées génèrent des messages d'erreur. | modePermissif | Les erreurs rencontrées sont ignorées (mode WINDEV 5.5 ou WEBDEV 1.5) |
Remarques Optimisation des appels externes Attention : Lorsqu'un projet est migré depuis la version 5.5, le mode permissif a été automatiquement ajouté lors de la migration dans le code d'initialisation du projet. Pour prendre en compte l'optimisation des appels externes, il est nécessaire d'indiquer la ligne de code suivante : ModeExécution(modePermissif + AppelsExternesOptimisés)
Utilisation de la constante ForceDestructeurObjetNonDynamique pour forcer la destruction des objets non dynamiques Attention : Lors de l'utilisation de la constante ForceDestructeurObjetNonDynamique pour forcer la destruction des objets non dynamiques, le réglage s'applique à tous les instances de classes de l'application. Dans le cas d'un projet existant, les effets peuvent être nombreux et le changement de mode impose une validation complète de l'application. Il est plutôt conseillé d'intervenir sur la gestion de la libération (prise de référence faible/forte) au niveau de chaque classe, plutôt que globalement pour le projet. Pour plus de détails, consultez Gestion avancée des instances de classes. Le tableau ci-dessous présente le comportement de l'application en fonction des erreurs rencontrées : | | | Cas d'erreur | ModePermissif | ModeNormal |
---|
Lecture d'un indice hors borne d'un champ Table, Liste ou Combo.Exemples : s = ListeA[-1] n = ListeB[56]..Couleur | Le programme retourne '0' ou une chaîne vide ("") selon la propriété utilisée. | Une erreur d'exécution s'affiche. Exemple : "L'indice spécifié [-1] est invalide" | Écriture dans un indice négatif d'un champ Liste, Table ou Combo. | La ligne de code est ignorée | Une erreur d'exécution s'affiche. Exemple : "L'indice spécifié [-1] est invalide" | Écriture dans un indice trop grand d'un champ Liste, Table ou Combo. | Un élément vide est inséré à la fin du champ Liste et prend la valeur indiquée. | Une erreur d'exécution s'affiche. Exemple : "L'indice spécifié [54] est invalide" | | Les espaces supplémentaires sont supprimés. | Une erreur d'exécution s'affiche. Exemple : "La fenêtre 'FEN1 ' est introuvable" | Utilisation des fonctions de gestion des menus contextuels et déroulants avec un numéro de menu inexistant. | La fonction renvoie '0' et la fonction ErreurInfo est renseignée. | Une erreur d'exécution s'affiche. Exemple : "L'option de menu spécifiée [54645] n'existe pas dans le menu" | Utilisation des fonctions Droite et Gauche avec un nombre de caractères à extraire négatif. | La fonction renvoie une chaîne vide (""). | La fonction renvoie EOT et la fonction ErreurInfo est renseignée. | Utilisation de la fonction Milieu avec une position de départ négative et/ou un nombre de caractères à extraire négatif. | La fonction :- commence l'extraction au début de la chaîne si la position de départ est négative.
- renvoie la chaîne source complète.
| La fonction renvoie EOT et la fonction ErreurInfo est renseignée. |
Classification Métier / UI : Code neutre
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|