home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / orarex.zip / SAMPLE3.CMD < prev    next >
OS/2 REXX Batch file  |  1995-06-28  |  3KB  |  117 lines

  1. /*** rexx ********************************************************************/
  2. /*                                                                           */
  3. /* SAMPLE3.CMD - Oracle-REXX Interface Sample                                */
  4. /*                                                                           */
  5. /* Sample REXX command file to demonstrate use of arrays.                    */
  6. /*                                                                           */
  7. /*****************************************************************************/
  8.  
  9. CALL RXFUNCADD "SQLEXEC", "RXORA", "SQLEXEC"
  10.  
  11. /*---------------------------------------------------------------------------*/
  12.  
  13. SAY "Connecting as SCOTT/TIGER"
  14.  
  15. user     = "SCOTT"
  16. password = "TIGER"
  17. connect  = "2:"
  18.  
  19. CALL SQLEXEC "CONNECT :user IDENTIFIED BY :password USING :connect"
  20. CALL CheckSQLReturn
  21.  
  22. /*---------------------------------------------------------------------------*/
  23.  
  24. SAY "Creating table TEMP"
  25.  
  26. CALL SQLEXEC "EXECUTE IMMEDIATE create table temp (empno number(4), ename varchar2(40), dept number(4))"
  27. CALL CheckSQLReturn
  28.  
  29. /*--Executing with an array--------------------------------------------------*/
  30.  
  31. SAY "Adding data to table TEMP"
  32.  
  33. CALL SQLEXEC "DECLARE stmt1 STATEMENT"
  34. CALL CheckSQLReturn
  35.  
  36. CALL SQLEXEC "PREPARE stmt1 FROM insert into temp(empno,ename,dept) values(:a,:b,:c)"
  37. CALL CheckSQLReturn
  38.  
  39. empno.1 = 1021
  40. ename.1 = 'David'
  41. dept.1  = 20
  42.  
  43. empno.2 = 1022
  44. ename.2 = 'Beverly'
  45. dept.2  = 20
  46.  
  47. empno.3 = 1023
  48. ename.3 = 'Tim'
  49. dept.3  = 20
  50.  
  51. empno.4 = 1024
  52. ename.4 = 'Lily'
  53. dept.4  = 20
  54.  
  55. n = 4
  56. CALL SQLEXEC "FOR :n EXECUTE stmt1 USING :empno, :ename, :dept"
  57. CALL CheckSQLReturn
  58.  
  59. /*--Fetching with an array---------------------------------------------------*/
  60.  
  61. SAY "Query data from table TEMP"
  62.  
  63. CALL SQLEXEC "DECLARE stmt2 STATEMENT"
  64. CALL CheckSQLReturn
  65.  
  66. CALL SQLEXEC "DECLARE csr2 CURSOR FOR stmt2"
  67. CALL CheckSQLReturn
  68.  
  69. CALL SQLEXEC "PREPARE stmt2 FROM select empno, ename from temp where dept=:a"
  70. CALL CheckSQLReturn
  71.  
  72. dept = 20
  73. CALL SQLEXEC "OPEN csr2 USING :dept"
  74. CALL CheckSQLReturn
  75.  
  76. n = 3
  77. rows = 0
  78. CALL SQLEXEC "FOR :n FETCH csr2 INTO :empno, :ename"
  79. DO WHILE (result = 0) & (sqlca.sqlcode >= 0)
  80.   DO i=1 TO (SQLCA.SQLERRD.3 - rows)
  81.     SAY right(empno.i,8) ename.i
  82.   END
  83.   rows = SQLCA.SQLERRD.3
  84.   CALL SQLEXEC "FOR :N FETCH csr2 INTO :empno, :ename"
  85. END
  86.  
  87. CALL SQLEXEC "CLOSE csr2"
  88. CALL CheckSQLReturn
  89.  
  90. /*---------------------------------------------------------------------------*/
  91.  
  92. SAY "Drop table TEMP"
  93.  
  94. CALL SQLEXEC "EXECUTE IMMEDIATE drop table temp"
  95. CALL CheckSQLReturn
  96.  
  97. /*---------------------------------------------------------------------------*/
  98.  
  99. SAY "Disconnect"
  100.  
  101. CALL SQLEXEC "ROLLBACK RELEASE"
  102. CALL CheckSQLReturn
  103.  
  104. EXIT
  105.  
  106. /*---------------------------------------------------------------------------*/
  107.  
  108. CheckSQLReturn:
  109.   IF result <> 0 THEN
  110.     SAY "Invalid embedded SQL statement ("result")."
  111.   ELSE IF sqlca.sqlcode <> 0 THEN
  112.     SAY sqlca.sqlerrmc
  113.   IF (result <> 0) | (sqlca.sqlcode <> 0) THEN
  114.     EXIT
  115.   RETURN
  116.  
  117.