RETRY

RETRY

このドキュメントでは、次のトピックについて説明します。

関連ステートメント:ACCEPT/REJECT | AT BREAK | AT START OF DATA | AT END OF DATA | BACKOUT TRANSACTION | BEFORE BREAK PROCESSING | DELETE | END TRANSACTION | FIND | GET | GET SAME | GET TRANSACTION DATA | HISTOGRAM | LIMIT | PASSW | PERFORM BREAK PROCESSING | READ | STORE | UPDATE

関連機能グループ:データベースへのアクセスと更新


関数

RETRY ステートメントは、ON ERROR ステートメントブロック内でのみ使用できます(ON ERROR ステートメントを参照)。他ユーザー用にホールド状態になっているレコードに再度アクセスするときに使用します。

レコードが他ユーザー用にすでにホールド状態になっている場合、Natural はエラーメッセージ 3145 を発行します。セッションパラメータ WH(ホールド状態でのレコードの待機)も参照してください。

RETRY ステートメントは、エラー 3145 の原因となっているオブジェクト内に指定します。

レコードのホールドロジックの詳細については、『プログラミングガイド』の「レコードホールドロジック」セクションを参照してください。

制限事項

このステートメントは、Adabas データベースにアクセスするためにのみ使用できます。

** Example 'RTYEX1': RETRY                                              
**                                                                      
** CAUTION: Executing this example will modify the database records!    
************************************************************************
DEFINE DATA LOCAL                                                       
1 EMPLOY-VIEW VIEW OF EMPLOYEES                                         
  2 NAME                                                                
*                                                                       
1 #RETRY (A1) INIT <' '>                                                
END-DEFINE                                                              
*                                                                       
FIND EMPLOY-VIEW WITH NAME = 'ALDEN'                                    
  /*                                                                    
  DELETE                                                                
  END TRANSACTION                                                       
  /*                                                                    
  ON ERROR                                                              
    IF *ERROR-NR = 3145                                                 
      INPUT NO ERASE 10/1                                               
            'RECORD IS IN HOLD' /                                       
            'DO YOU WISH TO RETRY?' /      
            #RETRY '(Y)ES OR (N)O?'        
      IF #RETRY = 'Y'                      
        RETRY                            
      ELSE                                 
        STOP                               
      END-IF                               
    END-IF                                 
  END-ERROR                                
  /*                                       
  AT END OF DATA                           
    WRITE NOTITLE *NUMBER 'RECORDS DELETED'
  END-ENDDATA                              
END-FIND                                   
*                                          
END