L4G >  Nointer  

Afficher tout Masquer tout

Nointer permet de rendre un traitement non interruptible depuis le clavier ou au contraire de le rendre interruptible.

 

Syntaxe

   Nointer [ expr_l ]

 

Paramètres

Elément

Description

Restrictions

expr_l

expression_logique.

Aucune.

 

Exemples

   # Pas d'interruption durant cette partie de traitement
    Nointer : # Nointer 1, ou Inter 0 sont équivalents.
   #  ... suite du traitement...
   # Maintenant, on peut interrompre le traitement
    Nointer 0 : # Inter, ou Inter 1 sont équivalents.

 

Description

Un traitement Adonix peut être interrompu au cours de son exécution par la frappe d'une séquence de touches appelée "séquence d'interruption soft". On utilise communément la séquence de touches <CTRL> + <ALT> + <Q> à cette fin. La touche <Q> est définie par défaut dans le fichier de configuration X3.INIet est modifiable.

Lorsqu'on frappe cette touche, une boite de question affiche le message suivant: 'Exécution interrompue en ligne N... Voulez-vous arrêter (O/N) ?'. Si l'on répond Non à cette question, le traitement reprend son cours, sinon il est interrompu.

Un traitement rendu interruptible peut être dérouté sur une étiquette lorsqu'on frappe sur la touche d'interruption, grâce à l'instruction Onintgo. Dans ce cas, il n'y a pas de message affiché par Adonix, mais le sous-programme défini à l'étiquette est exécuté avec un retour possible au traitement.

Le traitement de gestion de l'interruption ne peut en aucun cas terminer une transaction, que ce soit par Commit ou par Rollback, car il ne peut être du même niveau de localité que le traitement qui l'a initiée.

S'il y a une transaction en cours au moment où l'interruption est confirmée, elle est annulée automatiquement (Rollback) si le traitement appelé se termine par End. L'utilisateur en sera averti.

Dans un contexte de développement, il peut être intéressant d'interrompre un traitement soit définitivement, soit le temps de passer en mode trace du debugger, ou de vérifier la valeur d'une variable.

Nointer permet d'inhiber ou d'autoriser ce fonctionnement ; un traitement en mode Nointer ne pourra être interrompu de la sorte.

 

Remarques

Par défaut, un traitement est en mode Nointer (non interruptible).

Un sous-programme lancé par Call devient interruptible si le traitement qui l'a lancé était interruptible. Nointer dans un sous-programme permet de le rendre interruptible (ou non interruptible), par contre il ne peut pas rendre interruptible le traitement appelant.

Il est prudent de ne rester en mode Nointer 0 que durant le développement d'une application, afin de pouvoir interrompre un traitement qui se bloquerait par erreur, ou de pouvoir passer en debugger. Par contre, il est dangereux sauf exception de laisser la possibilité à un utilisateur final d'interrompre à tout moment un traitement. En outre, la scrutation permanente du clavier rend l'exécution des traitements plus lente.

Particularités Web

Non disponible en version Web.

Erreurs associées

Erreur

Description

ERMODE (10)

L'argument n'est pas de type numérique.

 

Mots-clés associés

INTER - ONINTGO - TRBEGIN - COMMIT - ROLLBACK