code

Name
Astradyne (UK) Ltd
Scriptlanguage
Plain Text
Tabwidth
4
Date
Sun, 12 May 2013 12:44:10 +0000
IP
192.168.0.1

This is an example of using the VALUES INTO statement within embedded dynamic SQL to select the total amount of orders for a specified account.

  1.     D wField          s            10a  Inz('AMOUNT')                   
  2.     D wFile          s            10a  Inz('ORDERHDR')                 
  3.     D wAccount        s            10a  Inz('AS000001')                 
  4.     D wQuote          s              1a  Inz('''')                       
  5.                                                                            
  6.     D wSql            s            512a                                   
  7.     D wTotal          s            15p 2                                 
  8.                                                                            
  9.     C* Build the SQL statement, the result should be:                     
  10.     C*    Values (Select sum(AMOUNT) From ORDERHDR where ACCOUNT='AS000001  ') Into ?
  11.                                                                            
  12.     C                  Eval      wSql = 'Values (Select sum(' +         
  13.     C                              %Trim(wField) + ') From ' +           
  14.     C                              %Trim(wFile) + ' where ACCOUNT=' +   
  15.     C                              wQuote + wAccount + wQuote + ') Into ?'
  16.                                                                            
  17.     C* Prepare and execute the SQL statement...                           
  18.     C/Exec SQL                                                           
  19.     C+ Prepare prpSQL From :wSQL                                         
  20.     C/End-Exec                             
  21.                                              
  22.     C/Exec SQL                             
  23.     C+ Execute prpSQL Using :wTotal         
  24.     C/End-Exec                             
  25.  
  26.     C* Display the calculated total...     
  27.     C    wTotal        Dsply
  28.                                              
  29.     C                  Eval      *InLR = *On