Advertisement
Guest User

Untitled

a guest
Jul 24th, 2018
141
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. PROCEDURE displayCustomer:
  2.     DEFINE PARAMETER BUFFER bfCustomer FOR Customer.
  3.    
  4.     IF NOT AVAILABLE bfCustomer THEN
  5.     DO:
  6.         MESSAGE 'No Customer Available'
  7.             VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  8.     END.
  9.     DISPLAY bfCustomer.CustNum bfCustomer.NAME bfCustomer.City.
  10.    
  11. END PROCEDURE.
  12.  
  13. PROCEDURE updateCustomer:
  14.     DEFINE PARAMETER BUFFER bfCustomer FOR Customer.
  15.    
  16.     IF NOT AVAILABLE bfCustomer THEN
  17.     DO:
  18.         MESSAGE 'No Customer Available'
  19.             VIEW-AS ALERT-BOX INFORMATION BUTTONS OK.
  20.     END.
  21.     IF INDEX (bfCustomer.NAME, 'Update' ) = 0 THEN
  22.     DO:
  23.         bfCustomer.NAME = bfCustomer.NAME + 'Update'.
  24.     END.
  25.    
  26.     ELSE DO:
  27.         bfCustomer.NAME = SUBSTRING (bfCustomer.NAME, 1, INDEX (bfCustomer.NAME, 'Update' ) - 1).
  28.     END.
  29.    
  30. END PROCEDURE.
  31.  
  32. PROCEDURE fetchCustomersFromCity:
  33.     DEFINE INPUT PARAMETER ipcCity AS CHARACTER NO-UNDO.
  34.    
  35.     DEFINE BUFFER bfCustomer FOR Customer.
  36.     DEFINE QUERY qQueryAllCust FOR bfCustomer.
  37.     DEFINE VARIABLE iCountCustomer AS INTEGER NO-UNDO.
  38.    
  39.     OPEN QUERY qQueryAllCust FOR EACH  bfCustomer NO-LOCK WHERE bfCustomer.City = ipcCity.
  40.     GET FIRST qQueryAllCust NO-LOCK.
  41.     DO WHILE NOT QUERY-OFF-END('qQueryAllCust'):
  42.     iCountCustomer = iCountCustomer + 1.
  43.         IF iCountCustomer = 5 THEN
  44.         DO:
  45.             RUN updateCustomer(BUFFER bfCustomer).
  46.         END.
  47.        
  48.         /*We have to get an Exclusive Lock on the fifth customer so we can update */
  49.         IF iCountCustomer = 4 THEN
  50.         DO:
  51.             RUN displayCustomer(BUFFER bfCustomer).
  52.             GET NEXT qQueryAllCust EXCLUSIVE-LOCK.
  53.         END.
  54.         ELSE DO:
  55.             RUN displayCustomer(BUFFER bfCustomer).
  56.             GET NEXT qQueryAllCust NO-LOCK.
  57.          END.            
  58.     END.
  59.    
  60.     CLOSE QUERY qQueryAllCust.
  61. END PROCEDURE.    
  62.  
  63. RUN fetchCustomersFromCity (INPUT 'Akron').
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement