home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / orarex.zip / SAMPLE4.CMD < prev   
OS/2 REXX Batch file  |  1995-06-28  |  5KB  |  173 lines

  1. /*** rexx ********************************************************************/
  2. /*                                                                           */
  3. /* SAMPLE1.CMD - Oracle-REXX Interface Sample                                */
  4. /*                                                                           */
  5. /* Sample REXX command file to demonstrate multiple database sessions.       */
  6. /*                                                                           */
  7. /*****************************************************************************/
  8.  
  9. CALL RXFUNCADD "SQLEXEC", "RXORA", "SQLEXEC"
  10.  
  11. /*--Connect using session1---------------------------------------------------*/
  12.  
  13. SAY "Connecting session1 as SCOTT/TIGER"
  14.  
  15. user     = "SCOTT"
  16. password = "TIGER"
  17. connect  = "2:"
  18.  
  19. CALL SQLEXEC "DECLARE session1 DATABASE"
  20. CALL CheckSQLReturn
  21.  
  22. CALL SQLEXEC "CONNECT :user IDENTIFIED BY :password AT session1 USING :connect"
  23. CALL CheckSQLReturn
  24.  
  25. /*---------------------------------------------------------------------------*/
  26.  
  27. SAY "Creating table TEMP"
  28.  
  29. CALL SQLEXEC "AT session1 EXECUTE IMMEDIATE create table temp (empno number(4), ename varchar2(40), dept number(4))"
  30. CALL CheckSQLReturn
  31.  
  32. /*--Add data from session1---------------------------------------------------*/
  33.  
  34. SAY "Adding data to table TEMP"
  35.  
  36. CALL SQLEXEC "AT session1 DECLARE stmt1 STATEMENT"
  37. CALL CheckSQLReturn
  38.  
  39. CALL SQLEXEC "PREPARE stmt1 FROM insert into temp(empno,ename,dept) values(:a,:b,:c)"
  40. CALL CheckSQLReturn
  41.  
  42. empno = 1021
  43. ename = 'David'
  44. dept  = 20
  45. CALL SQLEXEC "EXECUTE stmt1 USING :empno, :ename, :dept"
  46. CALL CheckSQLReturn
  47.  
  48. empno = 1022
  49. ename = 'Beverly'
  50. dept  = 20
  51. CALL SQLEXEC "EXECUTE stmt1 USING :empno, :ename, :dept"
  52. CALL CheckSQLReturn
  53.  
  54. CALL SQLEXEC "AT session1 COMMIT"
  55. CALL CheckSQLReturn
  56.  
  57. /*--Connect using session2---------------------------------------------------*/
  58.  
  59. SAY "Connecting session2 as SCOTT/TIGER"
  60.  
  61. user     = "SCOTT"
  62. password = "TIGER"
  63. connect  = "2:"
  64.  
  65. CALL SQLEXEC "DECLARE session2 DATABASE"
  66. CALL CheckSQLReturn
  67.  
  68. CALL SQLEXEC "CONNECT :user IDENTIFIED BY :password AT session2 USING :connect"
  69. CALL CheckSQLReturn
  70.  
  71. /*--Add data from session1---------------------------------------------------*/
  72.  
  73. SAY "Adding more data to table TEMP from session1"
  74.  
  75. empno = 1023
  76. ename = 'Tim'
  77. dept  = 20
  78. CALL SQLEXEC "EXECUTE stmt1 USING :empno, :ename, :dept"
  79. CALL CheckSQLReturn
  80.  
  81. empno = 1024
  82. ename = 'Lily'
  83. dept  = 20
  84. CALL SQLEXEC "EXECUTE stmt1 USING :empno, :ename, :dept"
  85. CALL CheckSQLReturn
  86.  
  87. /*--Fetch data from session2-------------------------------------------------*/
  88.  
  89. SAY "Query data from table TEMP from session2"
  90. SAY "Should only see two entries"
  91.  
  92. CALL SQLEXEC "AT session2 DECLARE stmt2 STATEMENT"
  93. CALL CheckSQLReturn
  94.  
  95. CALL SQLEXEC "DECLARE csr2 CURSOR FOR stmt2"
  96. CALL CheckSQLReturn
  97.  
  98. CALL SQLEXEC "PREPARE stmt2 FROM select empno, ename from temp"
  99. CALL CheckSQLReturn
  100.  
  101. CALL SQLEXEC "OPEN csr2"
  102. CALL CheckSQLReturn
  103.  
  104. CALL SQLEXEC "FETCH csr2 INTO :empno, :ename"
  105. DO WHILE (result = 0) & (sqlca.sqlcode = 0)
  106.   SAY right(empno,8) ename
  107.   CALL SQLEXEC "FETCH csr2 INTO :empno, :ename"
  108. END
  109.  
  110. CALL SQLEXEC "CLOSE csr2"
  111. CALL CheckSQLReturn
  112.  
  113. /*--Fetch data from session1-------------------------------------------------*/
  114.  
  115. SAY "Query data from table TEMP from session1"
  116. SAY "Should see four entries"
  117.  
  118. CALL SQLEXEC "AT session1 DECLARE stmt3 STATEMENT"
  119. CALL CheckSQLReturn
  120.  
  121. CALL SQLEXEC "DECLARE csr3 CURSOR FOR stmt3"
  122. CALL CheckSQLReturn
  123.  
  124. CALL SQLEXEC "PREPARE stmt3 FROM select empno, ename from temp"
  125. CALL CheckSQLReturn
  126.  
  127. CALL SQLEXEC "OPEN csr3"
  128. CALL CheckSQLReturn
  129.  
  130. CALL SQLEXEC "FETCH csr3 INTO :empno, :ename"
  131. DO WHILE (result = 0) & (sqlca.sqlcode = 0)
  132.   SAY right(empno,8) ename
  133.   CALL SQLEXEC "FETCH csr3 INTO :empno, :ename"
  134. END
  135.  
  136. CALL SQLEXEC "CLOSE csr3"
  137. CALL CheckSQLReturn
  138.  
  139. /*---------------------------------------------------------------------------*/
  140.  
  141. SAY "Disconnect Session2"
  142.  
  143. CALL SQLEXEC "AT session2 ROLLBACK RELEASE"
  144. CALL CheckSQLReturn
  145.  
  146. /*---------------------------------------------------------------------------*/
  147.  
  148. SAY "Drop table TEMP"
  149.  
  150. CALL SQLEXEC "AT session1 EXECUTE IMMEDIATE drop table temp"
  151. CALL CheckSQLReturn
  152.  
  153. /*---------------------------------------------------------------------------*/
  154.  
  155. SAY "Disconnect Session1"
  156.  
  157. CALL SQLEXEC "AT session1 ROLLBACK RELEASE"
  158. CALL CheckSQLReturn
  159.  
  160. EXIT
  161.  
  162. /*---------------------------------------------------------------------------*/
  163.  
  164. CheckSQLReturn:
  165.   IF result <> 0 THEN
  166.     SAY "Invalid embedded SQL statement ("result")."
  167.   ELSE IF sqlca.sqlcode <> 0 THEN
  168.     SAY sqlca.sqlerrmc
  169.   IF (result <> 0) | (sqlca.sqlcode <> 0) THEN
  170.     EXIT
  171.   RETURN
  172.  
  173.