home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / rexxgdb2.zip / RexxGDB2.INF (.txt) < prev    next >
OS/2 Help File  |  1997-08-10  |  57KB  |  2,092 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. About RexxGDB2 ΓòÉΓòÉΓòÉ
  3.  
  4.  
  5. RexxGDB2.ZIP and the files in it are FREEWARE. 
  6.  
  7. RexxGDB2.ZIP contains RexxGDB2.DLL, (this) online document, license agreement, 
  8. some test- and benchmark Rexx programs and many more files. 
  9.  
  10. RexxGDB2.DLL is a library of Rexx functions for IBM OS/2 (Warp) which allow 
  11. Rexx programs to manipulate data in IBM Database 2 for OS/2 (DB2/2) database 
  12. tables through SQL statements. 
  13.  
  14. Each of these Rexx functions performs one or several SQL-related tasks, and 
  15. none works as a common all-purpose Rexx DB2/2 API for all SQL statements like 
  16. IBM's SQLEXEC (which is included with each copy of IBM DB2/2). 
  17.  
  18. The design allows the Rexx functions to use static SQL (when they were built) 
  19. and to be fine-tuned separately which make them overall faster compared to 
  20. SQLEXEC. 
  21.  
  22. Author: Simon Husin of Kent, Washington, U.S.A. 
  23. E-mail: husin@ibm.net 
  24. FAX:   1-206-813-8202 
  25.  
  26.  
  27. ΓòÉΓòÉΓòÉ 2. Words of thanks ΓòÉΓòÉΓòÉ
  28.  
  29.  
  30. This package would not be possible without the involvement of the following 
  31. parties, directly and indirectly: 
  32.  
  33. o Mom and Dad in Antwerp, Belgium (for life and education) 
  34. o Mike Cowlishaw, IBM Fellow, IBM UK Laboratories (for his Rexx, Goserve and 
  35.   PMPrintF) 
  36. o Numerous people within IBM (for its OS/2, Warp, and Database for OS/2) 
  37.  
  38. Lastly, my love and thanks to Liza and Jacqueline, my wife and daughter at 
  39. home, who give me so much love, inspiration, motivations, and time... 
  40.  
  41.  
  42. ΓòÉΓòÉΓòÉ 3. Contents ΓòÉΓòÉΓòÉ
  43.  
  44.  
  45. RexxGDB2.ZIP Contains the following files 
  46.  
  47. ReadMe.1st   - Release Highlights, Tips, and Last-minute notes
  48. License.TXT  - License information
  49. BindGDB2.CMD - To bind RexxGDB2.BND file to your database(s)
  50. RexxGDB2.BND - Static SQL statements to be bound w/ BINDGDB2.CMD
  51. RexxGDB2.DLL - Library with the Rexx DB2/2 functions
  52. RexxGDB2.INF - Online document file (you are viewing at)
  53. RexxGDB2.TXT - Sample text to upload/post RexxGDB2.ZIP anywhere
  54.  
  55. G2Funcs.CMD  - Program to test all RexxGDB2 functions
  56.  
  57. G2Immed.CMD  - G2Immediate (and G2Rollback) testing program
  58.  
  59. G2Cols.CMD   - G2SelectCols testing program
  60. G2Data.CMD   - G2SelectData testing program
  61. G2Form.CMD   - G2SelectForm testing program
  62. G2one.CMD    - G2SelectOne testing program
  63.  
  64. G2Free.CMD   - To rollback last transactions,
  65.                disconnect from currently connected database, and
  66.                drop (unload) all RexxGDB2 functions
  67. DropGDB2.CMD - To drop (unload) all RexxGDB2 functions
  68.  
  69. Run-Exec     - Benchmark program using SQLEXEC API
  70. Run-G2       - Benchmark program using SQLEXEC & RexxGDB2 APIs
  71.  
  72. TestLong.CMD - To test the long SQL and returned value support by
  73.                G2SelectCols, G2SelectData, G2SelectForm, and
  74.                G2SelectOne
  75.  
  76. TestMult.CMD - To test RexxGDB2 multi-threaded support
  77. Thread1...8  - Programs called by TestMult
  78.  
  79. GToknSet.CMD - To create table G2Table in Sample database used by
  80.                GTOKNTST
  81. GToknTst.CMD - To test RexxGDB2 G2GetToken function
  82.  
  83. G2Blob.CMD   - G2SelectBlob testing program
  84. G2Clob.CMD   - G2SelectClob testing program
  85.  
  86. G2Ha.CMD     - To test RexxGDB2 G2HSelect2Textarea function
  87. G2Hc.CMD     - To test RexxGDB2 G2HSelect2Clob function
  88. G2Hi.CMD     - To test RexxGDB2 G2HSelect2Img function
  89. G2Hl.CMD     - To test RexxGDB2 G2HSelect2List function
  90. G2Hlb.CMD    - To test RexxGDB2 G2HSelect2Listbox function
  91. G2Hn.CMD     - To test RexxGDB2 G2HSelect2Input function
  92. G2Ht.CMD     - To test RexxGDB2 G2HSelect2Table function
  93. G2Hx.CMD     - To test RexxGDB2 G2HSelect2H function
  94.  
  95. G2HTable.80  - Sample Goserve filter that interfaces with RexxGDB2
  96. G2HTable.HTM - Sample First WWW Page served by Goserve via G2HTable.80
  97. StartUP.CMD  - Sample script to iniate a single-user local IP server
  98. Server.CMD   - Sample script to launch WWW Server (Goserve)
  99. Browser.CMD  - Sample script to launch WWW Browser (Netscape Navigator)
  100.  
  101.  
  102. ΓòÉΓòÉΓòÉ 4. System Requirements ΓòÉΓòÉΓòÉ
  103.  
  104.  
  105. Hardware 
  106.  
  107. IBM PC or compatible computers running with Intel 386SX 16Mhz, or any 
  108. compatible and faster processors, with 2 Mbytes of RAM above the OS/2 and DB2/2 
  109. requirements.  In addition, the RexxGDB2 package also requires 310 kbytes of 
  110. disk space for its files. 
  111.  
  112. Software 
  113.  
  114. Rexx functions included in the RexxGDB2.DLL are all 32-bit which require IBM 
  115. Operating System/2 (OS/2) version 2.x or newer with the Rexx-engine installed, 
  116. and IBM Database 2 for OS/2 (DB2/2) version 2.1 or newer. 
  117.  
  118.  
  119. ΓòÉΓòÉΓòÉ 5. Release Notes ΓòÉΓòÉΓòÉ
  120.  
  121.  
  122. =========================================================================== 
  123.  
  124. Version 1.30  Released on Sunday, August 10th, 1997. 
  125.  
  126. --------------------------------------------------------------------------- 
  127.  
  128. New functions are introduced to select large objects into files. 
  129.  
  130. HTML-generating functions are introduced.  They are all functions which names 
  131. start with G2H. 
  132.  
  133. RexxGDB2 now also supports Mike Cowlishaw's WWW Server, GoServe. 
  134.  
  135. All functions are better stream-lined to use less resources. 
  136.  
  137. Multi-threaded support is safer and more robust. 
  138.  
  139. =========================================================================== 
  140.  
  141. Version 1.20  Released on Sunday, November 17th, 1996. 
  142.  
  143. --------------------------------------------------------------------------- 
  144.  
  145. The Rexx functions now are now optimized for 486-class processors. They will 
  146. still run on 386- and Pentium or 586-class or higher processors. 
  147.  
  148. G2GetToken is introduced to ease the creation of Integer or Smallint tokens 
  149. (surrogate keys). 
  150.  
  151. =========================================================================== 
  152.  
  153. Version 1.10  Released on Sunday, August 11th, 1996. 
  154.  
  155. --------------------------------------------------------------------------- 
  156.  
  157. The Rexx functions now runs properly in a multi-threaded Rexx application 
  158. environment. 
  159.  
  160. G2SelectCols, G2SelectData, G2SelectForm, and G2SelectOne can now receive long 
  161. SQL statements and return long character strings. Please read the reference for 
  162. each of the above-mentioned functions. 
  163.  
  164. G2SelectOne now introduces a new (Rexx) variable called G2LongResult. Please 
  165. read the G2SelectOne section for more about it. 
  166.  
  167. =========================================================================== 
  168.  
  169. Version 1.00  Released on Sunday, December 10th, 1995. 
  170.  
  171. --------------------------------------------------------------------------- 
  172.  
  173. The Rexx functions have been tested, since the development started in April of 
  174. 1995, first on the single and server versions of IBM DB2/2 version 1.2., and 
  175. later continued (and modified) to ONLY support IBM DB2/2 version 2.x. 
  176.  
  177. The Rexx functions are compatible with Quercus Personal/Rexx version 3.0 for 
  178. OS/2.  Personal/Rexx version 3.0 for OS/2 is a compatible replacement for the 
  179. IBM OS/2 Rexx engine (PL 2/Rexx), has extended functions, and performs better 
  180. than PL 2/Rexx, especially when performing loops. 
  181.  
  182.  
  183. ΓòÉΓòÉΓòÉ 6. How to use RexxGDB2 ΓòÉΓòÉΓòÉ
  184.  
  185.  
  186. There are two steps and areas required to be prepared for RexxGDB2: 
  187.  
  188. o Creating packages on your DB2/2 databases 
  189. o Registering and loading the Rexx functions in your OS/2 session 
  190.  
  191. Creating packages on your DB2/2 databases 
  192.  
  193. Before using RexxGDB2 Rexx functions to manipulate existing DB2/2 databases, 
  194. you must (once) create the RexxGDB2 package (contained in RexxGDB2.BND) on each 
  195. of those DB2/2 database(s) using BindGDB2.CMD. 
  196.  
  197. To have DB2/2 automatically create a RexxGDB2 package for new or migrated DB2/2 
  198. databases, you must include RexxGDB2.BND in the list of 'bind files' contained 
  199. in DB2UBIND.LST. 
  200.  
  201. BindGDB2.CMD can be run from the OS/2 command prompt from the subdirectory 
  202. where both BindGDB2.CMD and RexxGDB2.BND reside.  When prompted, just type the 
  203. name of your existing DB2/2 database and press Enter.  You can repeat the 
  204. process to bind to multiple databases, or just press Enter to quit. 
  205.  
  206. DB2UBIND.LST (residing in the DB2/2 subdirectory, \SQLLIB\BND) can be changed 
  207. using any text editor to add the RexxGDB2.BND to the list.  If your database 
  208. has been created, this method does not automatically create the package on your 
  209. database!  In this case, you must either run BindGDB2.CMD or execute the Bind 
  210. statement using the DB2 command line processor to bind the DB2UBIND.LST, e.g. 
  211. 'db2 connect to sample in share mode' followed by 'db2 bind @DB2UBIND.LST'. 
  212.  
  213. NOTES: 
  214.  
  215. How the RexxGDB2.BND is bound influences the behaviour of its functions. 
  216. Without changes, BindGDB2.CMD will use the default settings which are the 
  217. following, among other things: 
  218.  
  219. o Isolation Level supported is 'Cursor Stability' 
  220. o Date and timestamp format is ISO 
  221. o Query optimization level 5 
  222.  
  223. If you want to customize RexxGDB2 to better suit your specific environment, 
  224. issue those specific options when (re-) binding RexxGDB2.BND. 
  225.  
  226. Example: 
  227.  
  228. On an OS/2 command prompt, issue the following statements:
  229.  
  230. DB2 CONNECT TO SAMPLE IN SHARE MODE
  231. DB2 BIND RexxGDB2.BND ISOLATION UR DATETIME USA QUERYOPT 0
  232.  
  233. Registering and loading the Rexx functions in your OS/2 session 
  234.  
  235. First, make sure RexxGDB2.DLL resides in a subdirectory that is included in the 
  236. LIBPATH (OS/2 system variable).  You can either copy RexxGDB2.DLL into a 
  237. subdirectory that has been included there, such as [your-drive:]\OS2\DLL, or 
  238. change your CONFIG.SYS to include RexxGDB2 subdirectory there and reboot the 
  239. system before using it. 
  240.  
  241. Second, in your Rexx application program (or Startup.CMD), you must load 
  242. RexxGDB2 functions using the standard OS/2 Rexx function RXFUNCADD.  To load 
  243. all functions, you can first load the function G2LoadFuncs, and call it to load 
  244. all functions in RexxGDB2 DLL (see the example below).  Unless dropped, the 
  245. functions need not be loaded again until the next system boot up. 
  246.  
  247. Example: 
  248.  
  249. if RXFuncQuery('G2LoadFuncs') then do
  250.    call RXFuncAdd 'G2LoadFuncs', 'RexxGDB2', 'G2LoadFuncs'
  251.    call G2LoadFuncs
  252.    end
  253.  
  254. How to run the sample programs included with this package 
  255.  
  256. Log on as USERID 
  257.  
  258.      Example: 
  259.  
  260.           [Warp prompt C:] LOGON /L USERID /P:SECRET
  261.  
  262. Activate the DB2/2 engine 
  263.  
  264.      Example: 
  265.  
  266.           [Warp prompt C:] DB2START
  267.  
  268. Before continuing... 
  269.  
  270.           Now ensure that...
  271.           1. DB2/2 Sample has been created (using DB2SAMPL)
  272.           2. RexxGDB2 has been installed as described above
  273.  
  274.           At this stage you can run all sample programs which names do
  275.           not start with G2H:
  276.  
  277.           3a.Examples:
  278.              Run-G2.CMD
  279.              Run-Exec.CMD
  280.              Testlong.CMD
  281.  
  282.  
  283.  
  284.           You need to install Netscape Navigator 2.xx (or newer) for
  285.           OS/2 to be able to run HTML-generating test programs as is.
  286.           The names of these test (Rexx) programs start with G2H.
  287.  
  288.           As an alternative, you could modify these programs to use
  289.           IBM WWW Explorer (Explore) instead of Netscape.
  290.  
  291.           3b.Examples:
  292.              G2Hi.CMD
  293.              G2Ht.CMD
  294.              G2Hlb.CMD
  295.  
  296.  
  297. ΓòÉΓòÉΓòÉ 7. How to use RexxGDB2 with Goserve ΓòÉΓòÉΓòÉ
  298.  
  299.  
  300. Items discussed here: 
  301.  
  302. o What is Goserve 
  303. o What is PMPrintF 
  304. o How Goserve and RexxGDB2 work together 
  305. o How to set up and use Goserve and RexxGDB2 sample resources 
  306.  
  307. What is Goserve 
  308.  
  309. Goserve is a Worldwide Web server for OS/2 written by Mike Cowlishaw, IBM 
  310. Fellow, IBM UK Laboratories. 
  311.  
  312. Goserve is available on numerous sites such as anonymous FTPs, WWWs, and BBSes. 
  313. To go to the source, check Mike Cowlishaw's WWW site: 
  314.  
  315.        http://www2.hursley.ibm.com
  316.  
  317. What is PMPrintF 
  318.  
  319. PMPrintF is another useful program written by Mike Cowlishaw, IBM Fellow, IBM 
  320. UK Laboratories 
  321.  
  322. It works well with Goserve and is useful to debug problems that may occur while 
  323. you are testing in building and providing WWW pages using RexxGDB2 functions. 
  324.  
  325. PMPrintF is also available on numerous sites such as anonymous FTPs, WWWs, and 
  326. BBSes. To go to the source, check Mike Cowlishaw's WWW site: 
  327.  
  328.        http://www2.hursley.ibm.com
  329.  
  330. How Goserve and RexxGDB2 work together 
  331.  
  332. Goserve is the link between what the clients see and the DB2/2 database data. 
  333.  
  334. It ensures that the initial and subsequent WWW pages are available when 
  335. requested. 
  336.  
  337. When a request is received by Goserve to retrieve data from DB2/2, it connects 
  338. to the appropriate DB2/2 database using the userid already available on the 
  339. system where Goserve runs. 
  340.  
  341. One or more Goserve (Rexx) scripts build a flat file containing the necessary 
  342. HTMLs using RexxGDB2 functions running in OS/2 address space (ADDRESS CMD) 
  343. invoked within the Goserve (Rexx) scripts. 
  344.  
  345. When done, Goserve sends the file back to the client as a WWW page. 
  346.  
  347. Summary: 
  348.  
  349. o Goserve receives requests for DB2/2 data 
  350. o Goserve connects to the DB2/2 
  351. o Goserve builds the WWW pages 
  352. o Goserve disconnects from the DB2/2 
  353. o Goserve sends the DB2/2 data on WWW pages to the requestor 
  354.  
  355. Note: 
  356.  
  357. Although Goserve connects and disconnects per each request, we notice that the 
  358. first connection remains active for the entire Goserve session.  This explains 
  359. why the first DB2/2 data request handled by Goserve takes more time compared to 
  360. the same request processed later. 
  361.  
  362. How to set up and use Goserve and RexxGDB2 sample resources 
  363.  
  364. Log on as USERID 
  365.  
  366.      Example: 
  367.  
  368.           [Warp prompt C:] LOGON /L USERID /P:SECRET
  369.  
  370. Activate the DB2/2 engine 
  371.  
  372.      Example: 
  373.  
  374.           [Warp prompt C:] DB2START
  375.  
  376. Before continuing... 
  377.  
  378.           Now ensure that...
  379.           1. DB2/2 Sample has been created (using DB2SAMPL)
  380.           2. RexxGDB2 has been installed as described above
  381.           3. Netscape Navigator 2.xx (or newer) for OS/2 has been properly installed
  382.           4. The OS/2 Warp TCP/IP has been set up correctly
  383.           5. The TCP/IP loopback driver is installed
  384.              See the StartUp.CMD in this package and Goserve.DOC for details
  385.           6. Your Goserve resources are correctly installed on C:\Goserve
  386.           7. You have copied the following resources into C:\Goserve
  387.              a. G2HTable.80
  388.              b. Server.CMD
  389.              c. Browser.CMD
  390.              d. G2HTable.HTM
  391.           8. You have configured Goserve to use G2HTable.80 filter
  392.              The following may help you configure your Goserve for that...
  393.              a. Type Goserve HTTP and press Enter from within Goserve subdirectory
  394.              b. Click on Goserve Options
  395.              c. Tab to Filter
  396.              d. Enter G2HTable.80
  397.              e  Click on Apply
  398.              f. Close the Options notebook
  399.              g. Stop Goserve
  400.  
  401. Start Server (Goserve) 
  402.  
  403.      Example: 
  404.  
  405.           [Warp prompt C:] Server.CMD
  406.  
  407. Start Browser (Netscape Navigator) 
  408.  
  409.      Example: 
  410.  
  411.           [Warp prompt C:] Browser.CMD
  412.  
  413. Enter an SQL statement on the WWW page 
  414.  
  415.      Example: 
  416.  
  417.           select * from staff
  418.           Click on Process
  419.  
  420.  
  421. ΓòÉΓòÉΓòÉ 8. Available External Functions ΓòÉΓòÉΓòÉ
  422.  
  423.  
  424. The external Rexx functions contained in RexxGDB2.DLL are (sorted 
  425. alphabetically): 
  426.  
  427. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  428. ΓöéName                ΓöéDescription                             Γöé
  429. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  430. ΓöéG2Commit            ΓöéIssue DB2/2 SQL Commit to make changes  Γöé
  431. Γöé                    Γöépermanent                               Γöé
  432. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  433. ΓöéG2ConnectExclusive  ΓöéConnect to a DB2/2 database in exclusiveΓöé
  434. Γöé                    Γöémode                                    Γöé
  435. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  436. ΓöéG2ConnectReset      ΓöéDisconnect a previously connected DB2/2 Γöé
  437. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  438. ΓöéG2ConnectShare      ΓöéConnect to a DB2/2 database in share    Γöé
  439. Γöé                    Γöémode                                    Γöé
  440. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  441. ΓöéG2CurDate           ΓöéGet and return CURRENT (server system)  Γöé
  442. Γöé                    ΓöéDATE (as RESULT)                        Γöé
  443. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  444. ΓöéG2CurExplSnap       ΓöéGet and return CURRENT EXPLAIN SNAPSHOT Γöé
  445. Γöé                    Γöé(as RESULT)                             Γöé
  446. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  447. ΓöéG2CurFuncPath       ΓöéGet and return CURRENT FUNCTION PATH (asΓöé
  448. Γöé                    ΓöéRESULT)                                 Γöé
  449. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  450. ΓöéG2CurQueryOpt       ΓöéGet and return CURRENT QUERY            Γöé
  451. Γöé                    ΓöéOPTIMIZATION (as RESULT)                Γöé
  452. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  453. ΓöéG2CurServer         ΓöéGet and return CURRENT SERVER name (as  Γöé
  454. Γöé                    ΓöéRESULT)                                 Γöé
  455. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  456. ΓöéG2CurTime           ΓöéGet and return CURRENT (server system)  Γöé
  457. Γöé                    ΓöéTIME (as RESULT)                        Γöé
  458. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  459. ΓöéG2CurTimeStamp      ΓöéGet and return CURRENT (server system)  Γöé
  460. Γöé                    ΓöéTIMESTAMP (as RESULT)                   Γöé
  461. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  462. ΓöéG2CurTimeZone       ΓöéGet and return CURRENT (server system)  Γöé
  463. Γöé                    ΓöéTIMEZONE (as RESULT)                    Γöé
  464. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  465. ΓöéG2DropFuncs         ΓöéUnload (drop) all functions from        Γöé
  466. Γöé                    Γöéinternal memory                         Γöé
  467. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  468. ΓöéG2GetToken          ΓöéExecute a DB2/2 SQL to obtain and       Γöé
  469. Γöé                    Γöéincrease a surrogate key                Γöé
  470. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  471. ΓöéG2H                 ΓöéWrite a string to a flat file, with or  Γöé
  472. Γöé                    Γöéwithout HTML (-paired) tag(s).          Γöé
  473. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  474. ΓöéG2HSelect2Clob      ΓöéExecute a DB2/2 SQL Select statement to Γöé
  475. Γöé                    Γöéget a CLOB and write it to a flat file  Γöé
  476. Γöé                    Γöéas HTML textarea element.               Γöé
  477. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  478. ΓöéG2HSelect2Img       ΓöéExecute a DB2/2 SQL Select statement to Γöé
  479. Γöé                    Γöéget a BLOB and write it to a flat file  Γöé
  480. Γöé                    Γöéas HTML image element.                  Γöé
  481. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  482. ΓöéG2HSelect2Input     ΓöéExecute a DB2/2 SQL Select statement to Γöé
  483. Γöé                    Γöéget rows and columns of fields and writeΓöé
  484. Γöé                    Γöéthem to a flat file as HTML input       Γöé
  485. Γöé                    Γöéelements.                               Γöé
  486. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  487. ΓöéG2HSelect2List      ΓöéExecute a DB2/2 SQL Select statement to Γöé
  488. Γöé                    Γöéget rows of data and write them to a    Γöé
  489. Γöé                    Γöéflat file as HTML list elements.        Γöé
  490. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  491. ΓöéG2HSelect2Listbox   ΓöéExecute a DB2/2 SQL Select statement to Γöé
  492. Γöé                    Γöéget rows and columns of fields and writeΓöé
  493. Γöé                    Γöéthem to a flat file as HTML select and  Γöé
  494. Γöé                    Γöéoption elements.                        Γöé
  495. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  496. ΓöéG2HSelect2Table     ΓöéExecute a DB2/2 SQL Select statement to Γöé
  497. Γöé                    Γöéget rows and columns of fields and writeΓöé
  498. Γöé                    Γöéthem to a flat file as HTML table       Γöé
  499. Γöé                    Γöéelements.                               Γöé
  500. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  501. ΓöéG2HSelect2Textarea  ΓöéExecute a DB2/2 SQL Select statement to Γöé
  502. Γöé                    Γöéget rows and columns of fields and writeΓöé
  503. Γöé                    Γöéthem to a flat file as an HTML textarea Γöé
  504. Γöé                    Γöéelement.                                Γöé
  505. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  506. ΓöéG2Immediate         ΓöéExecute a DB2/2 SQL Execute Immediate   Γöé
  507. Γöé                    Γöéfor some SQL statements                 Γöé
  508. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  509. ΓöéG2LoadFuncs         ΓöéLoad all functions in the library into  Γöé
  510. Γöé                    Γöéinternal memory                         Γöé
  511. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  512. ΓöéG2Rollback          ΓöéIssue DB2/2 SQL Rollback to cancel all  Γöé
  513. Γöé                    Γöéuncommitted changes                     Γöé
  514. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  515. ΓöéG2SelectBlob        ΓöéExecute a DB2/2 SQL Select statement to Γöé
  516. Γöé                    Γöéget a binary large object into a file.  Γöé
  517. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  518. ΓöéG2SelectClob        ΓöéExecute a DB2/2 SQL Select statement to Γöé
  519. Γöé                    Γöéget a text/character large object into aΓöé
  520. Γöé                    Γöéfile.                                   Γöé
  521. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  522. ΓöéG2SelectCols        ΓöéExecute a DB2/2 SQL Select statement to Γöé
  523. Γöé                    Γöéget selected column names, datatype, andΓöé
  524. Γöé                    Γöélength in a 1-dimensional stem.         Γöé
  525. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  526. ΓöéG2SelectData        ΓöéExecute a DB2/2 SQL Select statement to Γöé
  527. Γöé                    Γöéget one or specified number of rows of  Γöé
  528. Γöé                    Γöéraw data in a 2-dimensional stem.       Γöé
  529. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  530. ΓöéG2SelectForm        ΓöéExecute a DB2/2 SQL Select statement to Γöé
  531. Γöé                    Γöéget one or specified number of rows of  Γöé
  532. Γöé                    Γöéformatted data and one heading line in aΓöé
  533. Γöé                    Γöé1-dimensional stem.                     Γöé
  534. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  535. ΓöéG2SelectOne         ΓöéExecute a DB2/2 SQL Select statement to Γöé
  536. Γöé                    Γöéreturn one row-column data (as RESULT)  Γöé
  537. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  538. ΓöéG2SetConnection     ΓöéSet database connection to current (fromΓöé
  539. Γöé                    Γöédormant)                                Γöé
  540. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  541. ΓöéG2SetCurExplSnap    ΓöéSet CURRENT EXPLAIN SNAPSHOT (to NO,    Γöé
  542. Γöé                    ΓöéYES, or EXPLAIN)                        Γöé
  543. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  544. ΓöéG2SetCurPkgSet      ΓöéSet CURRENT PACKAGESET (to use another  Γöé
  545. Γöé                    Γöécollection)                             Γöé
  546. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  547. ΓöéG2SetCurQueryOpt    ΓöéSet CURRENT QUERY OPTIMIZATION (to 0, 1,Γöé
  548. Γöé                    Γöé3, 5, or 9)                             Γöé
  549. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  550. ΓöéG2User              ΓöéGet and return the (connected) USER id. Γöé
  551. Γöé                    Γöé(as RESULT)                             Γöé
  552. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  553.  
  554.  
  555. ΓòÉΓòÉΓòÉ 9. Load/Unload ΓòÉΓòÉΓòÉ
  556.  
  557.  
  558. Loading and unloading functions. 
  559.  
  560.  
  561. ΓòÉΓòÉΓòÉ 9.1. G2LoadFuncs * Load all functions ΓòÉΓòÉΓòÉ
  562.  
  563.  
  564. This function loads all RexxGDB2 functions into (internal) memory. 
  565.  
  566. Syntax: result = G2LoadFuncs()
  567.  
  568. Params: None  (parameters will be ignored)
  569.  
  570. Result: 1 when successful
  571.         0 when unsucessful
  572.  
  573.  
  574. ΓòÉΓòÉΓòÉ 9.2. G2DropFuncs * Unload all functions ΓòÉΓòÉΓòÉ
  575.  
  576.  
  577. This function unloads (removes) all RexxGDB2 functions from memory. 
  578.  
  579. Syntax: result = G2DropFuncs()
  580.  
  581. Params: None  (parameters will be ignored)
  582.  
  583. Result: 1 when successful
  584.         0 when unsucessful
  585.  
  586.  
  587. ΓòÉΓòÉΓòÉ 10. Connect/Disconnect ΓòÉΓòÉΓòÉ
  588.  
  589.  
  590. Connecting and disconnection functions. 
  591.  
  592.  
  593. ΓòÉΓòÉΓòÉ 10.1. G2ConnectExclusive * Connect to a database in exclusive mode ΓòÉΓòÉΓòÉ
  594.  
  595.  
  596. This function connects your application to the specified database in exclusive 
  597. mode. 
  598.  
  599. Syntax: result = G2ConnectExclusive(database)     /* 1 */
  600.  
  601. Params: 1. database (required)
  602.            Name of the DB2/2 Database to be connected
  603.            in exclusive mode
  604.  
  605. Result: DB2/2 SQLCODE
  606.  
  607.  
  608. ΓòÉΓòÉΓòÉ 10.2. G2ConnectShare     * Connect to a database in share mode ΓòÉΓòÉΓòÉ
  609.  
  610.  
  611. This function connects your application to the specified database in share 
  612. mode. 
  613.  
  614. Syntax: result = G2ConnectShare(database)         /* 1 */
  615.  
  616. Params: 1. database (required)
  617.            Name of the DB2/2 Database to be connected
  618.            in share mode
  619.  
  620. Result: DB2/2 SQLCODE
  621.  
  622.  
  623. ΓòÉΓòÉΓòÉ 10.3. G2ConnectReset     * Disconnect from the currently connected database ΓòÉΓòÉΓòÉ
  624.  
  625.  
  626. This function disconnects your application from the currently connected 
  627. database. 
  628.  
  629. Syntax: result = G2ConnectReset()
  630.  
  631. Params: None  (parameters will be ignored)
  632.  
  633. Result: DB2/2 SQLCODE
  634.  
  635.  
  636. ΓòÉΓòÉΓòÉ 11. Commit/Rollback ΓòÉΓòÉΓòÉ
  637.  
  638.  
  639. Committing or cancelling changes made so far. 
  640.  
  641.  
  642. ΓòÉΓòÉΓòÉ 11.1. G2Commit   * Make changes permanent ΓòÉΓòÉΓòÉ
  643.  
  644.  
  645. This function makes all changes, made from the last commit or rollback, 
  646. permanent. 
  647.  
  648. Syntax: result = G2Commit()
  649.  
  650. Params: None  (parameters will be ignored)
  651.  
  652. Result: DB2/2 SQLCODE
  653.  
  654.  
  655. ΓòÉΓòÉΓòÉ 11.2. G2Rollback * Cancel all changes ΓòÉΓòÉΓòÉ
  656.  
  657.  
  658. This function cancels all changes, made from the last commit or rollback. 
  659.  
  660. Syntax: result = G2Rollback()
  661.  
  662. Params: None  (parameters will be ignored)
  663.  
  664. Result: DB2/2 SQLCODE
  665.  
  666.  
  667. ΓòÉΓòÉΓòÉ 12. Execute Immediate ΓòÉΓòÉΓòÉ
  668.  
  669.  
  670. Executing SQL statements other than SELECT. 
  671.  
  672.  
  673. ΓòÉΓòÉΓòÉ 12.1. G2Immediate * Execute any one SQL statement, other than SELECT ΓòÉΓòÉΓòÉ
  674.  
  675.  
  676. This function executes any one SQL statement other than SELECT. 
  677.  
  678. Syntax: result = G2Immediate(non-select-sql)      /* 1 */
  679.  
  680. Params: 1. non-select-sql (required)
  681.            Any of the following SQL statements:
  682.  
  683.            ALTER
  684.            COMMENT ON
  685.            COMMIT
  686.            CREATE
  687.            DELETE
  688.            DROP
  689.            GRANT
  690.            INSERT (single & simple insert, i.e. without cursor)
  691.            LOCK TABLE
  692.            REVOKE
  693.            ROLLBACK
  694.            SET CONSTRAINTS
  695.            SET CURRENT EXPLAIN SNAPSHOT
  696.            SET CURRENT FUNCTION PATH
  697.            SET CURRENT QUERY OPTIMIZATION
  698.            SET EVENT MONITOR STATE
  699.            SIGNAL SQLSTATE
  700.            UPDATE (searched update, i.e. without cursor)
  701.  
  702. Result: DB2/2 SQLCODE
  703.  
  704.  
  705. ΓòÉΓòÉΓòÉ 13. Retrieve DB2/2 data with SELECT ΓòÉΓòÉΓòÉ
  706.  
  707.  
  708. Retrieving one or more information about DB2/2 table columns, and/or their rows 
  709. and columns with various functions through SQL SELECT statement. 
  710.  
  711.  
  712. ΓòÉΓòÉΓòÉ 13.1. G2SelectBlob * Retrieve selected BLOB into a file ΓòÉΓòÉΓòÉ
  713.  
  714.  
  715. This function processes an SQL statement, and get the selected BLOB into a 
  716. file. 
  717.  
  718. Syntax: result = G2SelectBlob(SQL_select_statement,  /* 1 */
  719.                               Blobfn)                /* 2 */
  720.  
  721. Params: 1. SQL_select_statement (required, functioning as input)
  722.            All tokens for a standard SQL Select statement, selecting
  723.            only one table column with datatype = BLOB.
  724.  
  725.            Example:
  726.            SELECT picture FROM emp_photo where...
  727.  
  728.         2. Blobfn - File name to contain the BLOB retrieved from
  729.            the database (required, holding the retrieved BLOB)
  730.  
  731. Result: DB2/2 SQLCODE
  732.  
  733.  
  734. ΓòÉΓòÉΓòÉ 13.2. G2SelectClob * Retrieve selected CLOB into a file ΓòÉΓòÉΓòÉ
  735.  
  736.  
  737. This function processes an SQL statement, and get the selected CLOB into a 
  738. file. 
  739.  
  740. Syntax: result = G2SelectClob(SQL_select_statement,  /* 1 */
  741.                               Clobfn)                /* 2 */
  742.  
  743. Params: 1. SQL_select_statement (required, functioning as input)
  744.            All tokens for a standard SQL Select statement, selecting
  745.            only one table column with datatype = CLOB.
  746.  
  747.            Example:
  748.            SELECT resume FROM emp_resume where...
  749.  
  750.         2. Clobfn - File name to contain the CLOB retrieved from
  751.            the database (required, holding the retrieved CLOB)
  752.  
  753. Result: DB2/2 SQLCODE
  754.  
  755.  
  756. ΓòÉΓòÉΓòÉ 13.3. G2SelectCols * Retrieve selected columns information ΓòÉΓòÉΓòÉ
  757.  
  758.  
  759. This function populates a specified "stem." with selected columns name, 
  760. datatype, and length. 
  761.  
  762. Syntax: result = G2SelectCols(SQL-Select-statement,  /* 1 */
  763.                               Rexx-stem)             /* 2 */
  764.  
  765. Params: 1. SQL-Select-statement (required)
  766.            All tokens for a standard SQL Select statement
  767.  
  768.            Examples:
  769.            a. 'SELECT * FROM STAFF'
  770.            b. 'SELECT COUNT(*) FROM ORG'
  771.            c. Assuming MYSQL contains 'SELECT * FROM STAFF'
  772.               Use MYSQL (without the quotes since you are passing the
  773.               value of MYSQL to G2SelectCols)
  774.            d. 'MYSQL'
  775.               (include quotes since you are telling G2SelectCols to
  776.               use the SQL Select Statement contained in the passed Rexx
  777.               variable directly)
  778.            e. 'MYSQLSTEM.INDEX'
  779.               (include quotes since you are telling G2SelectCols to
  780.               use the SQL Select Statement contained in the passed Rexx
  781.               variable directly)
  782.  
  783.         2. Rexx-stem - Stem variable name to place results in
  784.            (required)
  785.  
  786.            stem.0 = total number of columns found by DB2/2
  787.  
  788.            stem.x = column-name column-type column-length
  789.  
  790.                 x = a sequence number starting from
  791.                     1 (one) to the number contained in stem.0
  792.  
  793.                 column-name = DB2/2 table column name
  794.                 or
  795.                 sequence number as returned by DB2/2
  796.  
  797.                 column-type = any valid DB2/2 SQLTYPE
  798.                               As described in the DB2/2
  799.                               Programming Reference Data
  800.                               Structures for SQLDA
  801.  
  802.                 column-length=the column data length as returned
  803.                               by the DB2/2
  804.  
  805.                               For decimal column-types (484 or
  806.                               485), it returns the length before
  807.                               the decimal period, the decimal
  808.                               period itself (.), and the length
  809.                               following the decimal period.
  810.  
  811.                               Example: DECIMAL(7,2) will be
  812.                                         returned as 5.2
  813.  
  814. Result: DB2/2 SQLCODE
  815.  
  816.  
  817. ΓòÉΓòÉΓòÉ 13.4. G2SelectData * Retrieve selected rows and columns data ΓòÉΓòÉΓòÉ
  818.  
  819.  
  820. This function populates a specified "stem." with selected rows and columns of 
  821. data. 
  822.  
  823. The data is presented in a two-dimensional "stem.", one identifies the row 
  824. position, while the other the column position. 
  825.  
  826. Syntax: result = G2SelectData(SQL-Select-statement,  /* 1 */
  827.                               Rexx-stem,             /* 2 */
  828.                               requested-rows,        /* 3 */
  829.                               nullchar)              /* 4 */
  830.  
  831. Params: 1. SQL-Select-statement (required)
  832.            All tokens for a standard SQL Select statement
  833.            -or-
  834.            Name of the Rexx variable/stem element containing the SQL
  835.            statement
  836.  
  837.            Examples:
  838.            a. 'SELECT * FROM STAFF'
  839.            b. 'SELECT COUNT(*) FROM ORG'
  840.            c. Assuming MYSQL contains 'SELECT * FROM STAFF'
  841.               Use MYSQL (without the quotes since you are passing the
  842.               value of MYSQL to G2SelectData)
  843.            d. 'MYSQL'
  844.               (include quotes since you are telling G2SelectData to
  845.               use the SQL Select Statement contained in the passed Rexx
  846.               variable directly)
  847.            e. 'MYSQLSTEM.INDEX'
  848.               (include quotes since you are telling G2SelectData to
  849.               use the SQL Select Statement contained in the passed Rexx
  850.               variable directly)
  851.  
  852.         2. Rexx-stem - Stem variable name to place results in
  853.            (required)
  854.  
  855.            stem.0 = total number of rows returned
  856.  
  857.            stem.0.0 = total number of columns returned
  858.  
  859.            stem.r.c = row-column data
  860.  
  861.                 r   = row sequence number, starting from 1 (one)
  862.                       to the number contained in stem.0
  863.  
  864.                 c   = column sequence number, starting from 1
  865.                       to  the number contained in stem.0.0
  866.  
  867.                 row-column data =
  868.                       any data retrieved by DB2/2
  869.                       nul-ended string formatted
  870.  
  871.                       left justified
  872.  
  873.                       negative sign (-), if
  874.                       exists, will be placed in
  875.                       the first position
  876.  
  877.         3. Requested-rows - number of rows requested to be
  878.            returned (optional)
  879.  
  880.            If not supplied or if incorrect, it is defaulted to 1
  881.  
  882.            If less rows found than what here is specified,
  883.            all found rows will still be returned.
  884.  
  885.            In any case the number returned in stem.0 should
  886.            be used to know how many rows are returned.
  887.            stem.0 value will never exceed the number supplied
  888.            within this argument.
  889.  
  890.         4. Null character - character used to represent a 'NULL'
  891.            (optional)
  892.  
  893.            If not supplied or if incorrect, it is defaulted to ''
  894.  
  895.            If the parameter is longer than one character, only
  896.            the first character will be used.
  897.  
  898. Result: DB2/2 SQLCODE
  899.  
  900.  
  901. ΓòÉΓòÉΓòÉ 13.5. G2SelectForm * Retrieve and format selected rows of data ΓòÉΓòÉΓòÉ
  902.  
  903.  
  904. This function populates a specified "stem." with selected and formatted rows of 
  905. data. 
  906.  
  907. Syntax: result = G2SelectForm(SQL-Select-statement, /* 1 */
  908.                               Rexx-stem,            /* 2 */
  909.                               requested-rows,       /* 3 */
  910.                               nullchar,             /* 4 */
  911.                               pad-char,             /* 5 */
  912.                               varcharlen)           /* 6 */
  913.  
  914. Params: 1. SQL-Select-statement (required)
  915.            All tokens for a standard SQL Select statement
  916.  
  917.            Examples:
  918.            a. 'SELECT * FROM STAFF'
  919.            b. 'SELECT COUNT(*) FROM ORG'
  920.            c. Assuming MYSQL contains 'SELECT * FROM STAFF'
  921.               Use MYSQL (without the quotes since you are passing the
  922.               value of MYSQL to G2SelectForm)
  923.            d. 'MYSQL'
  924.               (include the quotes since you are telling G2SelectForm to
  925.               use the SQL Select Statement contained in the passed Rexx
  926.               variable directly)
  927.            e. 'MYSQLSTEM.INDEX'
  928.               (include the quotes since you are telling G2SelectForm to
  929.               use the SQL Select Statement contained in the passed Rexx
  930.               variable directly)
  931.  
  932.         2. Rexx-stem - Stem variable name to place results in
  933.            (required)
  934.  
  935.            stem.0 = total number of rows returned
  936.  
  937.            stem.0.0 = header with column name
  938.                        (or sequence number)
  939.  
  940.            stem.r   = row data
  941.  
  942.                     r           = row sequence number, start
  943.                                   from 1 (one) to the number
  944.                                   contained in stem.0
  945.  
  946.                     row data    = any data retrieved by DB2/2
  947.                                   nul-ended string formatted
  948.  
  949.                                   left justified
  950.  
  951.         3. requested-rows - number of rows requested to be
  952.            returned  (optional, default = 1)
  953.  
  954.            If not supplied or if incorrect, it is defaulted to 1
  955.  
  956.            If less rows found than what here is specified,
  957.            all found rows will still be returned.
  958.  
  959.            In any case the number returned in stem.0 should
  960.            be used to know how many rows are returned.
  961.            stem.0 value will never exceed the number supplied
  962.            within this argument.
  963.  
  964.         4. nullchar - character used to represent a 'NULL'
  965.                       or any data of unknown datatype
  966.            (optional, default = '')
  967.  
  968.            If not supplied or if incorrect, it is defaulted to ''
  969.  
  970.            If the parameter is longer than one character,
  971.            only the first character will be used.
  972.  
  973.            The entire column width will be filled by
  974.            this character.
  975.  
  976.         5. pad-char - character to be used as filler
  977.            (optional, default = CHAR(250))
  978.            If not supplied it is defaulted to CHAR(250), i.e. (┬╖)
  979.  
  980.            It is used to fill column heading which is not
  981.            covering the entire width.
  982.  
  983.         6. varcharlen - maximum length of DB2/2 VARCHAR column
  984.            data  (optional, default = 50)
  985.  
  986.            If not supplied it is defaulted to 50 (fifty chars.).
  987.  
  988. Result: DB2/2 SQLCODE
  989.  
  990.  
  991. ΓòÉΓòÉΓòÉ 13.6. G2SelectOne  * Return one and first selected row and column data ΓòÉΓòÉΓòÉ
  992.  
  993.  
  994. Process an SQL statement (parm.# 1), get the first row and column and return it 
  995. (as RESULT) to the caller. 
  996.  
  997. Rexx variable G2SQLcode will be populated with the DB2/2 SQLCODE. 
  998.  
  999. Rexx variable G2LongResult will be populated either with NULL ('') or a string 
  1000. longer than 254 characters which cannot be returned by the function (due to IBM 
  1001. OS/2 Rexx limitations). In this case, the function only returns the first 254 
  1002. (left most) characters. 
  1003.  
  1004. Syntax: result = G2SelectOne(SQL-Select-statement,  /* 1 */
  1005.                              nullchar)              /* 2 */
  1006.  
  1007. Params: 1. SQL-Select-statement (required)
  1008.            All tokens for a standard SQL Select statement
  1009.  
  1010.            Examples:
  1011.            a. 'SELECT * FROM STAFF'
  1012.            b. 'SELECT COUNT(*) FROM ORG'
  1013.            c. Assuming MYSQL contains 'SELECT * FROM STAFF'
  1014.               Use MYSQL (without the quotes since you are passing the
  1015.               value of MYSQL to G2SelectOne)
  1016.            d. 'MYSQL'
  1017.               (include the quotes since you are telling G2SelectOne to
  1018.               use the SQL Select Statement contained in the passed Rexx
  1019.               variable directly)
  1020.            e. 'MYSQLSTEM.INDEX'
  1021.               (include the quotes since you are telling G2SelectOne to
  1022.               use the SQL Select Statement contained in the passed Rexx
  1023.               variable directly)
  1024.  
  1025.         2. nullchar - character used to represent a 'NULL' (optional)
  1026.  
  1027.            If not supplied or if incorrect, it is defaulted to ''
  1028.  
  1029.            If the parameter is longer than one character, only the
  1030.            the first character will be used.
  1031.  
  1032. Result: '' (null string) - IF ...
  1033.         - a row - column was found but not populated (NULL)
  1034.         - no row was found
  1035.         - error
  1036.  
  1037.         ---OR---
  1038.  
  1039.         String (alphanumeric) - IF...
  1040.         the select was successful
  1041.  
  1042.         ---OR---
  1043.  
  1044.         Supplied null character (parameter #2) - IF...
  1045.         the parameter was specified and
  1046.         the selected data was not populated (NULL)
  1047.  
  1048. Other:  G2SQLCODE contains the DB2/2 SQLCODE
  1049.         G2LONGRESULT contains either Rexx NULL character ('')
  1050.                   or a string longer than 254 characters
  1051.  
  1052.  
  1053. ΓòÉΓòÉΓòÉ 14. DB2/2 Special Registers ΓòÉΓòÉΓòÉ
  1054.  
  1055.  
  1056. The functions contained herein are to retrieve and/or set DB2/2 2.x special 
  1057. registers. 
  1058.  
  1059.  
  1060. ΓòÉΓòÉΓòÉ 14.1. Date & Time Registers ΓòÉΓòÉΓòÉ
  1061.  
  1062.  
  1063. The functions contained herein are to retrieve DB2/2 server current clock date 
  1064. and/or time 
  1065.  
  1066.  
  1067. ΓòÉΓòÉΓòÉ 14.1.1. G2CurDate      * Retrieve current date ΓòÉΓòÉΓòÉ
  1068.  
  1069.  
  1070. Retrieve the current clock date from the DB2/2 server. 
  1071.  
  1072. Rexx variable G2SQLcode will be populated with the DB2/2 SQLCODE. 
  1073.  
  1074. Syntax: result = G2CurDate()
  1075.  
  1076. Params: None  (parameters will be ignored)
  1077.  
  1078. Result: Current date in either one of the following format, depending
  1079.         on the datetime format used during binding or creation of
  1080.         the package.
  1081.  
  1082.         Datetime code       Format returned
  1083.             ISO                yyyy-mm-dd
  1084.             USA                mm/dd/yyyy
  1085.             EUR                dd.mm.yyyy
  1086.             JIS                yyyy-mm-dd
  1087.             LOC                Depends on database country code
  1088.  
  1089.         Null ('') if errors were detected, e.g. when no DB2/2 connection
  1090.         exists.
  1091.  
  1092. Other:  G2SQLCODE contains the DB2/2 SQLCODE
  1093.  
  1094.  
  1095. ΓòÉΓòÉΓòÉ 14.1.2. G2CurTime      * Retrieve current time ΓòÉΓòÉΓòÉ
  1096.  
  1097.  
  1098. Retrieve the current clock time from the DB2/2 server. 
  1099.  
  1100. Rexx variable G2SQLcode will be populated with the DB2/2 SQLCODE. 
  1101.  
  1102. Syntax: result = G2CurTime()
  1103.  
  1104. Params: None  (parameters will be ignored)
  1105.  
  1106. Result: Current time in either one of the following format, depending
  1107.         on the datetime format used during binding or creation of
  1108.         the package.
  1109.  
  1110.         Datetime code       Format returned
  1111.             ISO                hh.mm.ss
  1112.             USA                hh:mm AM or hh:mm PM
  1113.             EUR                hh.mm.ss
  1114.             JIS                hh:mm:ss
  1115.             LOC                Depends on database country code
  1116.  
  1117.         Null ('') if errors were detected, e.g. when no DB2/2 connection
  1118.         exists.
  1119.  
  1120. Other:  G2SQLCODE contains the DB2/2 SQLCODE
  1121.  
  1122.  
  1123. ΓòÉΓòÉΓòÉ 14.1.3. G2CurTimeStamp * Retrieve current date and timestamp ΓòÉΓòÉΓòÉ
  1124.  
  1125.  
  1126. Retrieve the current clock date and timestamp from the DB2/2 server. 
  1127.  
  1128. Rexx variable G2SQLcode will be populated with the DB2/2 SQLCODE. 
  1129.  
  1130. Syntax: result = G2CurTimeStamp()
  1131.  
  1132. Params: None  (parameters will be ignored)
  1133.  
  1134. Result: Current date and timestamp in IBM format, i.e.
  1135.         yyyy-mm-dd-hh.mm.ss.nnnnnn
  1136.  
  1137.         Null ('') if errors were detected, e.g. when no DB2/2 connection
  1138.         exists.
  1139.  
  1140. Other:  G2SQLCODE contains the DB2/2 SQLCODE
  1141.  
  1142.  
  1143. ΓòÉΓòÉΓòÉ 14.1.4. G2CurTimeZone  * Retrieve time difference with UTC time ΓòÉΓòÉΓòÉ
  1144.  
  1145.  
  1146. Retrieve time difference between the DB2/2 server and the UTC time (formerly 
  1147. known as GMT). 
  1148.  
  1149. Rexx variable G2SQLcode will be populated with the DB2/2 SQLCODE. 
  1150.  
  1151. Syntax: result = G2CurTimeZone()
  1152.  
  1153. Params: None  (parameters will be ignored)
  1154.  
  1155. Result: Time difference in 6 digits, i.e. [+ or -] hhmmss.
  1156.         UTC time = CURRENT TIMESTAMP - CURRENT TIMEZONE
  1157.  
  1158.         Null ('') if errors were detected, e.g. when no DB2/2 connection
  1159.         exists.
  1160.  
  1161. Other:  G2SQLCODE contains the DB2/2 SQLCODE
  1162.  
  1163.  
  1164. ΓòÉΓòÉΓòÉ 14.2. Explain Snapshot ΓòÉΓòÉΓòÉ
  1165.  
  1166.  
  1167. The functions contained herein are to retrieve and set DB2/2 explain snapshot 
  1168. facility. 
  1169.  
  1170.  
  1171. ΓòÉΓòÉΓòÉ 14.2.1. G2CurExplSnap    * Retrieve current Explain snapshot register ΓòÉΓòÉΓòÉ
  1172.  
  1173.  
  1174. Retrieve the value of the DB2/2 register which controls the explain snapshot 
  1175. facility. 
  1176.  
  1177. Syntax: result = G2CurExplSnap()
  1178.  
  1179. Params: None  (parameters will be ignored)
  1180.  
  1181. Result: YES, NO, or EXPLAIN
  1182.  
  1183.         Null ('') if errors were detected, e.g. when no DB2/2 connection
  1184.         exists.
  1185.  
  1186. Other:  G2SQLCODE contains the DB2/2 SQLCODE
  1187.  
  1188.  
  1189. ΓòÉΓòÉΓòÉ 14.2.2. G2SetCurExplSnap * Set current Explain Snapshot register ΓòÉΓòÉΓòÉ
  1190.  
  1191.  
  1192. Change and set the value of the DB2/2 register to control the explain snapshot 
  1193. facility. 
  1194.  
  1195. Syntax: result = G2SetCurExplSnap(explparm)       /* 1 */
  1196.  
  1197. Params: 1. explparm (required)
  1198.            Any character supported by SET CURRENT EXPLAIN SNAPSHOT.
  1199.  
  1200.            At the moment, only three parameters are available, i.e.
  1201.            NO, YES, or EXPLAIN.
  1202.  
  1203. Result: DB2/2 SQLCODE
  1204.  
  1205.  
  1206. ΓòÉΓòÉΓòÉ 14.3. Query Optimization ΓòÉΓòÉΓòÉ
  1207.  
  1208.  
  1209. The functions contained herein are to retrieve and set DB2/2 query optimization 
  1210. class. 
  1211.  
  1212.  
  1213. ΓòÉΓòÉΓòÉ 14.3.1. G2CurQueryOpt    * Retrieve current Query Optimization register ΓòÉΓòÉΓòÉ
  1214.  
  1215.  
  1216. Retrieve the value of the DB2/2 register which controls the query optimization 
  1217. class used to bind (PREPARE) dynamic SQLs. 
  1218.  
  1219. Syntax: result = G2CurQueryOpt()
  1220.  
  1221. Params: None  (parameters will be ignored)
  1222.  
  1223. Result: Query Optimization class 0, 1, 3, 5, or 9
  1224.  
  1225.         Where:
  1226.         0 = minimal optimization, fastest to bind
  1227.         1 = optimization class comparable to the one used in DB2/2
  1228.             prior to DB2/2 2.x
  1229.         3 = optimization class closely resembling the one used in
  1230.             DB2 (for MVS/ESA)
  1231.         5 = default class which instructs significant optimization
  1232.             designed to produce excellent access path for mixed
  1233.             queries
  1234.         9 = maximal optimization, slowest to bind
  1235.  
  1236.         Null ('') if errors were detected, e.g. when no DB2/2 connection
  1237.         exists.
  1238.  
  1239. Other:  G2SQLCODE contains the DB2/2 SQLCODE
  1240.  
  1241.  
  1242. ΓòÉΓòÉΓòÉ 14.3.2. G2SetCurQueryOpt * Set current Query Optimization register ΓòÉΓòÉΓòÉ
  1243.  
  1244.  
  1245. Change and set the value of the DB2/2 register to control the explain snapshot 
  1246. facility. 
  1247.  
  1248. Syntax: result = G2SetCurExplSnap(opt_class)      /* 1 */
  1249.  
  1250. Params: 1. opt_class (required)
  1251.            Any class supported by SET CURRENT QUERY OPTIMIZATION, which
  1252.            is currently:
  1253.  
  1254.            0 = minimal optimization, fastest to bind
  1255.            1 = optimization class comparable to the one used in DB2/2
  1256.                prior to DB2/2 2.x
  1257.            3 = optimization class closely resembling the one used in
  1258.                DB2 (for MVS/ESA)
  1259.            5 = default class which instructs significant optimization
  1260.                designed to produce excellent access path for mixed
  1261.                queries
  1262.            9 = maximal optimization, slowest to bind
  1263.  
  1264. Result: DB2/2 SQLCODE
  1265.  
  1266.  
  1267. ΓòÉΓòÉΓòÉ 14.4. Other registers ΓòÉΓòÉΓòÉ
  1268.  
  1269.  
  1270. The functions contained herein are to obtain values of the remaining DB2/2 
  1271. special registers. 
  1272.  
  1273.  
  1274. ΓòÉΓòÉΓòÉ 14.4.1. G2CurFuncPath  * Retrieve current Function Path register ΓòÉΓòÉΓòÉ
  1275.  
  1276.  
  1277. Retrieve the value of the DB2/2 register which controls dynamically prepared 
  1278. function and datatype references included in the SQL statements. 
  1279.  
  1280. Syntax: result = G2CurFuncPath()
  1281.  
  1282. Params: None  (parameters will be ignored)
  1283.  
  1284. Result: The current function path which may look as follows:
  1285.         "SYSIBM","SYSFUNC","SIMON"
  1286.  
  1287.         Null ('') if errors were detected, e.g. when no DB2/2 connection
  1288.         exists.
  1289.  
  1290. Other:  G2SQLCODE contains the DB2/2 SQLCODE
  1291.  
  1292.  
  1293. ΓòÉΓòÉΓòÉ 14.4.2. G2CurServer    * Retrieve current Server register ΓòÉΓòÉΓòÉ
  1294.  
  1295.  
  1296. Retrieve the value of the DB2/2 register which holds the actual name of the 
  1297. application server. the SQL statements. 
  1298.  
  1299. Syntax: result = G2CurServer()
  1300.  
  1301. Params: None  (parameters will be ignored)
  1302.  
  1303. Result: The current server name, such as SAMPLE.
  1304.  
  1305.         Null ('') if errors were detected, e.g. when no DB2/2 connection
  1306.         exists.
  1307.  
  1308. Other:  G2SQLCODE contains the DB2/2 SQLCODE
  1309.  
  1310.  
  1311. ΓòÉΓòÉΓòÉ 14.4.3. G2User         * Retrieve the connected User ID. ΓòÉΓòÉΓòÉ
  1312.  
  1313.  
  1314. Retrieve the value of the DB2/2 register which holds the user id. used by the 
  1315. application when connecting to the database. 
  1316.  
  1317. Syntax: result = G2User()
  1318.  
  1319. Params: None  (parameters will be ignored)
  1320.  
  1321. Result: The current (connected) User ID.
  1322.  
  1323.         Null ('') if errors were detected, e.g. when no DB2/2 connection
  1324.         exists.
  1325.  
  1326. Other:  G2SQLCODE contains the DB2/2 SQLCODE
  1327.  
  1328.  
  1329. ΓòÉΓòÉΓòÉ 15. More SQL Set statements ΓòÉΓòÉΓòÉ
  1330.  
  1331.  
  1332. The functions contained herein are to allow (faster) settings of some other 
  1333. modifiable DB2/2 status. 
  1334.  
  1335. Functions to modify Special Register values, if available, can be found under 
  1336. the Special Registers topic. 
  1337.  
  1338.  
  1339. ΓòÉΓòÉΓòÉ 15.1. G2SetConnection * Set dormant connection to current ΓòÉΓòÉΓòÉ
  1340.  
  1341.  
  1342. This function changes the state of a DB2/2 database connection from dormant to 
  1343. current. 
  1344.  
  1345. If another connection was available and active (current) when this function was 
  1346. executed, that would be put in a dormant state upon a successful completion of 
  1347. this function, 
  1348.  
  1349. Syntax: result = G2SetConnection(database)        /* 1 */
  1350.  
  1351. Params: 1. database (required)
  1352.  
  1353.            Name of the database that needs be made current.
  1354.  
  1355. Result: DB2/2 SQLCODE
  1356.  
  1357.  
  1358. ΓòÉΓòÉΓòÉ 15.2. G2SetCurPkgSet  * Set current Packageset ΓòÉΓòÉΓòÉ
  1359.  
  1360.  
  1361. This function sets the collection identifier that will be used to select the 
  1362. package to use for subsequent SQL statements. 
  1363.  
  1364. Syntax: result = G2SetCurPkgSet(collect_id)       /* 1 */
  1365.  
  1366. Params: 1. collect_id (required)
  1367.  
  1368.            Collection identifier to be set.
  1369.  
  1370. Result: DB2/2 SQLCODE
  1371.  
  1372.  
  1373. ΓòÉΓòÉΓòÉ 16. Task-specific Functions ΓòÉΓòÉΓòÉ
  1374.  
  1375.  
  1376. Executing two or more SQL statements with one Rexx function call.  The 
  1377. functions are geared to peform a dedicated task. 
  1378.  
  1379.  
  1380. ΓòÉΓòÉΓòÉ 16.1. G2GetToken * Obtain a surrogate key from a reserved key table ΓòÉΓòÉΓòÉ
  1381.  
  1382.  
  1383. This function returns a surrogate key to be used to uniquely identify an 
  1384. entity. 
  1385.  
  1386. Syntax: result = G2GetToken(SQL-Select-statement,    /* 1 */
  1387.                             Maximum-value,           /* 2 */
  1388.                             Show-current-value-flag) /* 3 */
  1389.  
  1390. Params: 1. SQL-Select-statement (required)
  1391.            All tokens for a standard SQL Select statement
  1392.  
  1393.            Only one column of type SMALLINT or INTEGER may be selected
  1394.            in this SQL statement.
  1395.  
  1396.            Examples:
  1397.            a. "SELECT UNIQUEID FROM QINC.UNIQUEIDS WHERE ID='INVOICE'"
  1398.            b. Assuming MYSQL contains the above SQL statement
  1399.               Use MYSQL (without the quotes since you are passing the
  1400.               value of MYSQL to G2GetToken)
  1401.            c. 'MYSQL'
  1402.               (include quotes since you are telling G2GetToken to use
  1403.               the SQL Select Statement contained in the passed Rexx
  1404.               variable directly)
  1405.  
  1406.         2. Maximum-value - which value determines the highest possible
  1407.            value for the surrogate-key (optional)
  1408.  
  1409.            If not supplied, this value is set by default to...
  1410.            32767 if the selected column is of SMALLINT datatype
  1411.            ---OR---
  1412.            2147483647 if the column is of INTEGER datatype.
  1413.  
  1414.         3. Show-current-value-flag - which indicates that the current
  1415.            value must be returned, before it is increased by 1 (optional)
  1416.  
  1417.            If not supplied, the function returns the new value, i.e.
  1418.            after the current value is increased by 1.  This is the same
  1419.            value which is updated in the selected table.
  1420.  
  1421.            The flag may be any character, including Rexx null character,
  1422.            as long it is supplied (e.g. G2GetToken('MYSQL',,1) or
  1423.            G2GetToken(mysql,,'x').
  1424.  
  1425.  
  1426. Result: A token which could be...
  1427.         - the new surrogate key, if the third parameter is not supplied
  1428.         - the current surrogate key (before increased by 1), if the third
  1429.           parameter is supplied
  1430.         - 0 (zero), if current value is requested and it is NULL
  1431.  
  1432. Other:  G2SQLCODE contains the DB2/2 SQLCODE
  1433.  
  1434.         (Rexx) Syntax error is triggered if the second parameter, Maximum-
  1435.         value, is smaller or equal to the current value, before it is
  1436.         increased by 1.
  1437.  
  1438.         (Rexx) Syntax error is also triggered if the datatype of the
  1439.         one and only selected column is not SMALLINT or INTEGER.
  1440.  
  1441.         If the fourth word in the SQL statement is not the name of the
  1442.         table where the selected column resides, unpredictable results
  1443.         may occur!
  1444.  
  1445.  
  1446. ΓòÉΓòÉΓòÉ 17. HTML-generating functions ΓòÉΓòÉΓòÉ
  1447.  
  1448.  
  1449. These are functions which build HTML-encoded records in a file that is meant 
  1450. for a WWW browser 
  1451.  
  1452.  
  1453. ΓòÉΓòÉΓòÉ 17.1. G2H                  * Write a string to a flat file, with or without HTML (-paired) tag(s). ΓòÉΓòÉΓòÉ
  1454.  
  1455.  
  1456. This function write a string to a file with or without the ASCII record 
  1457. terminating characters (CR LF), and with or without the optionally supplied 
  1458. paired HTML tag. 
  1459.  
  1460. Syntax: result = G2H(HTMLfn,                         /* 1 */
  1461.                      LF,                             /* 2 */
  1462.                      Any_text,                       /* 3 */
  1463.                      Paired_Tag)                     /* 4 */
  1464.  
  1465. Params: 1. HTMLfn - File name to contain the produced HTML
  1466.            (required, holding the produced data)
  1467.  
  1468.         2. LF - Flag which when supplied with any character indicates
  1469.            that a line feed at the end of the written record is
  1470.            required (optional, instructional)
  1471.            If not supplied, no line feed will be added.
  1472.  
  1473.         3. Any_text - Any non nullable text
  1474.            (required, functioning as input)
  1475.  
  1476.         4. Paired_Tag - String, assumed to be HTML Tags, which
  1477.            when supplied, will be embedded with < and >, and
  1478.            at the end of the written string, will be written,
  1479.            embedded with </ and > (optional, functioning as input)
  1480.  
  1481. Result: HTML file name as supplied in the first parameter.
  1482.  
  1483.         Rexx Null character ('') if error occurs during the function exec.
  1484.  
  1485. Other:  Generated HTML codes in the HTMLfn
  1486.  
  1487.  
  1488. ΓòÉΓòÉΓòÉ 17.2. G2HSelect2Clob      * Write a Clob to a flat file as HTML textarea element ΓòÉΓòÉΓòÉ
  1489.  
  1490.  
  1491. This function processes an SQL Select statement and create a set of HTML codes 
  1492. to show the selected text Clob on the WWW browser in a textarea object. 
  1493.  
  1494. Syntax: result = G2HSelect2Clob(HTMLfn,               /* 1 */
  1495.                                 LF,                   /* 2 */
  1496.                                 SQL_select_statement, /* 3 */
  1497.                                 Area_rows,            /* 4 */
  1498.                                 Area_cols,            /* 5 */
  1499.                                 Area_name,            /* 6 */
  1500.                                 Extension)            /* 7 */
  1501.  
  1502. Params: 1. HTMLfn - File name to contain the produced HTML
  1503.            (required, holding the produced data)
  1504.  
  1505.         2. LF - Flag which when supplied with any character indicates
  1506.            that a line feed at the end of the written record is
  1507.            required (optional, instructional)
  1508.            If not supplied, no line feed will be added.
  1509.  
  1510.         3. SQL_select_statement
  1511.            (required, functioning as input)
  1512.            All tokens for a standard SQL Select statement, selecting
  1513.            only one table column with datatype = CLOB.
  1514.  
  1515.            Example:
  1516.            SELECT story FROM story_book where...
  1517.  
  1518.         4. Area_rows - specifies number of lines to be visible
  1519.            when the text area is displayed (optional, instructional)
  1520.  
  1521.            If not supplied it is defaulted to 1.
  1522.  
  1523.         5. Area_cols - specifies the width of the text area
  1524.            when the text area is displayed (optional, instructional)
  1525.  
  1526.            If not supplied it is defaulted to 40.
  1527.  
  1528.         6. Area_name (optional, functioning as input)
  1529.            Name of the listbox to be returned to the server.
  1530.  
  1531.            If not supplied it is defaulted to 'TAREA1'.
  1532.  
  1533.         7. Extension - any parameters for future/specific
  1534.            browsers for the textarea (optional, functioning as input)
  1535.  
  1536.            If not supplied, it is set by default to null.
  1537.  
  1538. Result: HTML file name as supplied in the first parameter.
  1539.  
  1540.         Rexx Null character ('') if error occurs during the function exec.
  1541.  
  1542. Other:  G2SQLCODE contains the DB2/2-returned SQLCODE
  1543.         Generated HTML textarea codes in the HTMLfn
  1544.  
  1545.  
  1546. ΓòÉΓòÉΓòÉ 17.3. G2HSelect2Img       * Write a Blob to a flat file as HTML image element ΓòÉΓòÉΓòÉ
  1547.  
  1548.  
  1549. This function processes an SQL Select statement and create a set of HTML codes 
  1550. to show the selected image on the WWW browser in image object. 
  1551.  
  1552. Syntax: result = G2HSelect2Img(HTMLfn,               /* 1 */
  1553.                                LF,                   /* 2 */
  1554.                                SQL_select_statement, /* 3 */
  1555.                                Imagefn,              /* 4 */
  1556.                                Alternate_text,       /* 5 */
  1557.                                Alignment,            /* 6 */
  1558.                                Extension)            /* 7 */
  1559.  
  1560. Params: 1. HTMLfn - File name to contain the produced HTML
  1561.            (required, holding the produced data)
  1562.  
  1563.         2. LF - Flag which when supplied with any character indicates
  1564.            that a line feed at the end of the written record is
  1565.            required (optional, instructional)
  1566.            If not supplied, no line feed will be added.
  1567.  
  1568.         3. SQL_select_statement
  1569.            (required, functioning as input)
  1570.            All tokens for a standard SQL Select statement, selecting
  1571.            only one table column with datatype = BLOB.
  1572.  
  1573.            Example:
  1574.            SELECT picture FROM emp_photo where...
  1575.  
  1576.         4. Imagefn - File name to contain the image retrieved from
  1577.            the database (required, holding the retrieved image)
  1578.  
  1579.         5. Alternate_text - text to show as an alternate to the
  1580.            graphics (optional, functioning as input)
  1581.  
  1582.            If not supplied it is set to Imagefn in upper case.
  1583.  
  1584.         6. Alignment - position of the graphics compared to the text
  1585.            that follows the graphics (optional, instructional)
  1586.  
  1587.            If not supplied or incorrect, it is set by default to
  1588.            "B"ottom.
  1589.            If this is supplied but Text is not, this is ignored.
  1590.            Possible values are "B"ottom, "M"iddel, and "T"op.
  1591.  
  1592.         7. Extension - any parameters for future/specific browsers
  1593.            (optional, functioning as input)
  1594.  
  1595.            If not supplied, it is set by default to null.
  1596.  
  1597. Result: HTML file name as supplied in the first parameter.
  1598.  
  1599.         Rexx Null character ('') if error occurs during the function exec.
  1600.  
  1601. Other:  G2SQLCODE contains the DB2/2-returned SQLCODE
  1602.         Image in the Imagefn
  1603.         Generated HTML IMG codes in the HTMLfn
  1604.  
  1605.  
  1606. ΓòÉΓòÉΓòÉ 17.4. G2HSelect2Input     * Get rows and columns of fields and write them to a flat file as HTML input elements ΓòÉΓòÉΓòÉ
  1607.  
  1608.  
  1609. This function processes an SQL Select statement and create a set of HTML codes 
  1610. to show the selected row(s) column(s) on the WWW browser as input field(s). 
  1611.  
  1612. Syntax: result = G2HSelect2Input(HTMLfn,               /* 1 */
  1613.                                  LF,                   /* 2 */
  1614.                                  SQL_select_statement, /* 3 */
  1615.                                  Requested_rows,       /* 4 */
  1616.                                  Null_char,            /* 5 */
  1617.                                  Varcharlen,           /* 6 */
  1618.                                  Style,                /* 7 */
  1619.                                  Extension4label,      /* 8 */
  1620.                                  Extension4field)      /* 9 */
  1621.  
  1622. Params: 1. HTMLfn - File name to contain the produced HTML
  1623.            (required, holding the produced data)
  1624.  
  1625.         2. LF - Flag which when supplied with any character indicates
  1626.            that a line feed at the end of the written record is
  1627.            required (optional, instructional)
  1628.            If not supplied, no line feed will be added.
  1629.  
  1630.         3. SQL_select_statement
  1631.            (required, functioning as input)
  1632.            All tokens for a standard SQL Select statement
  1633.  
  1634.            Examples:
  1635.            a. SELECT * FROM STAFF
  1636.            b. SELECT COUNT(*) FROM ORG
  1637.  
  1638.         4. Requested_rows - number of rows requested to be returned
  1639.            (optional, instructional)
  1640.  
  1641.            If not supplied or if incorrect, it is defaulted to 1
  1642.  
  1643.            If less rows found than what here is specified,
  1644.            all found rows will still be returned.
  1645.  
  1646.            In any case the number returned in stem.0 should
  1647.            be used to know how many rows are returned.
  1648.            stem.0 value will never exceed the number supplied
  1649.            within this argument.
  1650.  
  1651.         5. Null_char - character used to represent a 'NULL'
  1652.                       or any data of unknown datatype
  1653.            (optional, instructional)
  1654.  
  1655.            If not supplied or if incorrect, it is defaulted to ''
  1656.  
  1657.            If the parameter is longer than one character, only the
  1658.            the first character will be used.
  1659.  
  1660.            The entire column width will be filled by this character.
  1661.  
  1662.         6. Varcharlen - maximum length of DB2/2 VARCHAR column data
  1663.            (optional, instructional)
  1664.  
  1665.            If not supplied it is defaulted to FORMAT_VARCHAR_MAX.
  1666.  
  1667.         7. Style - Style of the input fields
  1668.            (optional, instructional)
  1669.  
  1670.            '1' - One column represented by two lines
  1671.                  One as title w/ column name, and the other with the
  1672.                  input field itself.
  1673.            '2' - One column represented by one line
  1674.                  Only the input field is shown.
  1675.            '3' - One column represented by one line
  1676.                  Field title followed by the input field.
  1677.         NOTE:
  1678.         If more rows are shown, '<HR>' is placed between blocks of
  1679.         rows.
  1680.  
  1681.         8. Extension4label - any parameters for future/specific
  1682.            browsers for the label (optional, functioning as input)
  1683.  
  1684.            If not supplied, it is set by default to null.
  1685.  
  1686.         9. Extension4field - any parameters for future/specific
  1687.            browsers for the input fields
  1688.            (optional, functioning as input)
  1689.  
  1690.            If not supplied, it is set by default to null.
  1691.  
  1692. Result: HTML file name as supplied in the first parameter.
  1693.  
  1694.         Rexx Null character ('') if error occurs during the function exec.
  1695.  
  1696. Other:  G2SQLCODE contains the DB2/2-returned SQLCODE
  1697.         Generated HTML INPUT codes in the HTMLfn
  1698.  
  1699.  
  1700. ΓòÉΓòÉΓòÉ 17.5. G2HSelect2List      * Get rows of data and write them to a flat file as HTML list elements ΓòÉΓòÉΓòÉ
  1701.  
  1702.  
  1703. This function processes an SQL Select statement and create a set of HTML codes 
  1704. to show the selected row(s) column(s) on the WWW browser as list element(s). 
  1705.  
  1706. Syntax: result = G2HSelect2List(HTMLfn,                /* 1 */
  1707.                                 LF,                    /* 2 */
  1708.                                 SQL_select_statement,  /* 3 */
  1709.                                 Requested_rows,        /* 4 */
  1710.                                 Null_char,             /* 5 */
  1711.                                 Varcharlen,            /* 6 */
  1712.                                 List_Tag,              /* 7 */
  1713.                                 Extension4list,        /* 8 */
  1714.                                 Extension4data)        /* 9 */
  1715.  
  1716. Params: 1. HTMLfn - File name to contain the produced HTML
  1717.            (required, holding the produced data)
  1718.  
  1719.         2. LF - Flag which when supplied with any character indicates
  1720.            that a line feed at the end of the written record is
  1721.            required (optional, instructional)
  1722.            If not supplied, no line feed will be added.
  1723.  
  1724.         3. SQL_select_statement
  1725.            (required, functioning as input)
  1726.            All tokens for a standard SQL Select statement
  1727.  
  1728.            Examples:
  1729.            a. SELECT * FROM STAFF
  1730.            b. SELECT COUNT(*) FROM ORG
  1731.  
  1732.         4. Requested_rows - number of rows requested to be returned
  1733.            (optional, instructional)
  1734.  
  1735.            If not supplied or if incorrect, it is defaulted to 1
  1736.  
  1737.            If less rows found than what here is specified,
  1738.            all found rows will still be returned.
  1739.  
  1740.            In any case the number returned in stem.0 should
  1741.            be used to know how many rows are returned.
  1742.            stem.0 value will never exceed the number supplied
  1743.            within this argument.
  1744.  
  1745.         5. Null_char - character used to represent a 'NULL'
  1746.                       or any data of unknown datatype
  1747.            (optional, instructional)
  1748.  
  1749.            If not supplied or if incorrect, it is defaulted to ''
  1750.  
  1751.            If the parameter is longer than one character, only the
  1752.            the first character will be used.
  1753.  
  1754.            The entire column width will be filled by this character.
  1755.  
  1756.         6. Varcharlen - maximum length of DB2/2 VARCHAR column data
  1757.            (optional, instructional)
  1758.  
  1759.            If not supplied it is defaulted to FORMAT_VARCHAR_MAX.
  1760.  
  1761.         7. List_Tag - String, with the list descriptive tag
  1762.            (optional, instructional)
  1763.  
  1764.            The tag will be embedded with < and >, and at the end of
  1765.            the list, will be written, embedded with </ and >.
  1766.  
  1767.            If not supplied it is defaulted to 'UL'.
  1768.  
  1769.         8. Extension4list - any parameters for future/specific
  1770.            browsers for the list (optional, functioning as input)
  1771.  
  1772.            If not supplied, it is set by default to null.
  1773.  
  1774.         9. Extension4data - any parameters for future/specific
  1775.            browsers for the data line(s)
  1776.            (optional, functioning as input)
  1777.  
  1778.            If not supplied, it is set by default to null.
  1779.  
  1780. Result: HTML file name as supplied in the first parameter.
  1781.  
  1782.         Rexx Null character ('') if error occurs during the function exec.
  1783.  
  1784. Other:  G2SQLCODE contains the DB2/2-returned SQLCODE
  1785.         Generated HTML "list" codes in the HTMLfn
  1786.  
  1787.  
  1788. ΓòÉΓòÉΓòÉ 17.6. G2HSelect2Listbox   * Get rows & columns of fields & write them to a flat file as HTML select & option elements ΓòÉΓòÉΓòÉ
  1789.  
  1790.  
  1791. This function processes an SQL Select statement and create a set of HTML codes 
  1792. to show the selected row(s) column(s) on the WWW browser as select and option 
  1793. element(s). 
  1794.  
  1795. Syntax: result = G2HSelect2Listbox(HTMLfn,               /* 1  */
  1796.                                    LF,                   /* 2  */
  1797.                                    SQL_select_statement, /* 3  */
  1798.                                    Requested_rows,       /* 4  */
  1799.                                    Null_char,            /* 5  */
  1800.                                    Varcharlen,           /* 6  */
  1801.                                    Listbox_size,         /* 7  */
  1802.                                    Select_multiple,      /* 8  */
  1803.                                    Listbox_name,         /* 9  */
  1804.                                    Extension4select,     /* 10 */
  1805.                                    Extension4option)     /* 11 */
  1806.  
  1807. Params: 1. HTMLfn - File name to contain the produced HTML
  1808.            (required, holding the produced data)
  1809.  
  1810.         2. LF - Flag which when supplied with any character indicates
  1811.            that a line feed at the end of the written record is
  1812.            required (optional, instructional)
  1813.            If not supplied, no line feed will be added.
  1814.  
  1815.         3. SQL_select_statement
  1816.            (required, functioning as input)
  1817.            All tokens for a standard SQL Select statement
  1818.  
  1819.            Examples:
  1820.            a. SELECT * FROM STAFF
  1821.            b. SELECT COUNT(*) FROM ORG
  1822.  
  1823.         4. Requested_rows - number of rows requested to be returned
  1824.            (optional, instructional)
  1825.  
  1826.            If not supplied or if incorrect, it is defaulted to 1
  1827.  
  1828.            If less rows found than what here is specified,
  1829.            all found rows will still be returned.
  1830.  
  1831.            In any case the number returned in stem.0 should
  1832.            be used to know how many rows are returned.
  1833.            stem.0 value will never exceed the number supplied
  1834.            within this argument.
  1835.  
  1836.         5. Null_char - character used to represent a 'NULL'
  1837.                       or any data of unknown datatype
  1838.            (optional, instructional)
  1839.  
  1840.            If not supplied or if incorrect, it is defaulted to ''
  1841.  
  1842.            If the parameter is longer than one character, only the
  1843.            the first character will be used.
  1844.  
  1845.            The entire column width will be filled by this character.
  1846.  
  1847.         6. Varcharlen - maximum length of DB2/2 VARCHAR column data
  1848.            (optional, instructional)
  1849.  
  1850.            If not supplied it is defaulted to FORMAT_VARCHAR_MAX.
  1851.  
  1852.         7. Listbox_size - specifies number of lines to be visible
  1853.            when the listbox is displayed (optional, instructional)
  1854.  
  1855.            If not supplied it is defaulted to 1.
  1856.  
  1857.         8. Select_multiple - whether or not to allow multiple
  1858.            selection of items from the list
  1859.            (optional, instructional)
  1860.  
  1861.            If not supplied it is defaulted to OFF, i.e. only one
  1862.            item may be selected from the list.
  1863.  
  1864.         9. Listbox_name (optional, functioning as input)
  1865.            Name of the listbox to be returned to the server.
  1866.  
  1867.            If not supplied it is defaulted to 'LISTBOX1'.
  1868.  
  1869.        10. Extension4select - any parameters for future/specific
  1870.            browsers for the select (optional, functioning as input)
  1871.  
  1872.            If not supplied, it is set by default to null.
  1873.  
  1874.        11. Extension4option - any parameters for future/specific
  1875.            browsers for the option fields
  1876.            (optional, functioning as input)
  1877.  
  1878.            If not supplied, it is set by default to null.
  1879.  
  1880. Result: HTML file name as supplied in the first parameter.
  1881.  
  1882.         Rexx Null character ('') if error occurs during the function exec.
  1883.  
  1884. Other:  G2SQLCODE contains the DB2/2-returned SQLCODE
  1885.         Generated HTML "select and option" codes in the HTMLfn
  1886.  
  1887.  
  1888. ΓòÉΓòÉΓòÉ 17.7. G2HSelect2Table     * Get rows and columns of fields and write them to a flat file as HTML table elements ΓòÉΓòÉΓòÉ
  1889.  
  1890.  
  1891. This function processes an SQL Select statement and create a set of HTML codes 
  1892. to show the selected row(s) column(s) on the WWW browser as table(s). 
  1893.  
  1894. Syntax: result = G2HSelect2Table(HTMLfn,                 /* 1  */
  1895.                                  LF,                     /* 2  */
  1896.                                  SQL_select_statement,   /* 3  */
  1897.                                  Requested_rows,         /* 4  */
  1898.                                  Null_char,              /* 5  */
  1899.                                  Varcharlen,             /* 6  */
  1900.                                  Border_width,           /* 7  */
  1901.                                  Show_rownum,            /* 8  */
  1902.                                  Show_header,            /* 9  */
  1903.                                  Extension4table,        /* 10 */
  1904.                                  Extension4record,       /* 11 */
  1905.                                  Extension4header,       /* 12 */
  1906.                                  Extension4detail)       /* 13 */
  1907.  
  1908. Params: 1. HTMLfn - File name to contain the produced HTML
  1909.            (required, holding the produced data)
  1910.  
  1911.         2. LF - Flag which when supplied with any character indicates
  1912.            that a line feed at the end of the written record is
  1913.            required (optional, instructional)
  1914.            If not supplied, no line feed will be added.
  1915.  
  1916.         3. SQL_select_statement
  1917.            (required, functioning as input)
  1918.            All tokens for a standard SQL Select statement
  1919.  
  1920.            Examples:
  1921.            a. SELECT * FROM STAFF
  1922.            b. SELECT COUNT(*) FROM ORG
  1923.  
  1924.         4. Requested_rows - number of rows requested to be returned
  1925.            (optional, instructional)
  1926.  
  1927.            If not supplied or if incorrect, it is defaulted to 1
  1928.  
  1929.            If less rows found than what here is specified,
  1930.            all found rows will still be returned.
  1931.  
  1932.            In any case the number returned in stem.0 should
  1933.            be used to know how many rows are returned.
  1934.            stem.0 value will never exceed the number supplied
  1935.            within this argument.
  1936.  
  1937.         5. Null_char - character used to represent a 'NULL'
  1938.                       or any data of unknown datatype
  1939.            (optional, instructional)
  1940.  
  1941.            If not supplied or if incorrect, it is defaulted to ''
  1942.  
  1943.            If the parameter is longer than one character, only the
  1944.            the first character will be used.
  1945.  
  1946.            The entire column width will be filled by this character.
  1947.  
  1948.         6. Varcharlen - maximum length of DB2/2 VARCHAR column data
  1949.            (optional, instructional)
  1950.  
  1951.            If not supplied it is defaulted to FORMAT_VARCHAR_MAX.
  1952.  
  1953.         7. Border_width - whether or not to show the table border
  1954.            and if so, how wide (optional, input)
  1955.  
  1956.            If not supplied it is not to show the border.
  1957.            If supplied it is to show the border with the given width.
  1958.  
  1959.         8. Show_rownum - whether or not to show the number of each row
  1960.            within the cursor next to each table row
  1961.            (optional, instructional)
  1962.  
  1963.            If not supplied the row number is not shown.
  1964.            If supplied the row number is shown.
  1965.  
  1966.         9. Show_header - whether or not to show the column header
  1967.            (optional, instructional)
  1968.  
  1969.            If not supplied the header is not shown.
  1970.            If supplied the header is shown as the first row of the table.
  1971.  
  1972.        10. Extension4table - any parameters for future/specific
  1973.            browsers for the table (optional, functioning as input)
  1974.  
  1975.            If not supplied, it is set by default to null.
  1976.  
  1977.        11. Extension4record - any parameters for future/specific
  1978.            browsers for the record fields
  1979.            (optional, functioning as input)
  1980.  
  1981.            If not supplied, it is set by default to null.
  1982.  
  1983.        12. Extension4header - any parameters for future/specific
  1984.            browsers for the header fields
  1985.            (optional, functioning as input)
  1986.  
  1987.            If not supplied, it is set by default to null.
  1988.  
  1989.        13. Extension4detail - any parameters for future/specific
  1990.            browsers for the detail fields
  1991.            (optional, functioning as input)
  1992.  
  1993.            If not supplied, it is set by default to null.
  1994.  
  1995. Result: HTML file name as supplied in the first parameter.
  1996.  
  1997.         Rexx Null character ('') if error occurs during the function exec.
  1998.  
  1999. Other:  G2SQLCODE contains the DB2/2-returned SQLCODE
  2000.         Generated HTML TABLE codes in the HTMLfn
  2001.  
  2002.  
  2003. ΓòÉΓòÉΓòÉ 17.8. G2HSelect2Textarea  * Get rows & columns of fields & write them to a flat file as an HTML textarea element ΓòÉΓòÉΓòÉ
  2004.  
  2005.  
  2006. This function processes an SQL Select statement and create a set of HTML codes 
  2007. to show the selected row(s) column(s) on the WWW browser as select and option 
  2008. element(s). 
  2009.  
  2010. Syntax: result = G2HSelect2Textarea(HTMLfn,               /* 1  */
  2011.                                     LF,                   /* 2  */
  2012.                                     SQL_select_statement, /* 3  */
  2013.                                     Requested_rows,       /* 4  */
  2014.                                     Null_char,            /* 5  */
  2015.                                     Varcharlen,           /* 6  */
  2016.                                     Area_rows,            /* 7  */
  2017.                                     Area_cols,            /* 8  */
  2018.                                     Area_name,            /* 9  */
  2019.                                     Extension)            /* 10 */
  2020.  
  2021. Params: 1. HTMLfn - File name to contain the produced HTML
  2022.            (required, holding the produced data)
  2023.  
  2024.         2. LF - Flag which when supplied with any character indicates
  2025.            that a line feed at the end of the written record is
  2026.            required (optional, instructional)
  2027.            If not supplied, no line feed will be added.
  2028.  
  2029.         3. SQL_select_statement
  2030.            (required, functioning as input)
  2031.            All tokens for a standard SQL Select statement
  2032.  
  2033.            Examples:
  2034.            a. SELECT * FROM STAFF
  2035.            b. SELECT COUNT(*) FROM ORG
  2036.  
  2037.         4. Requested_rows - number of rows requested to be returned
  2038.            (optional, instructional)
  2039.  
  2040.            If not supplied or if incorrect, it is defaulted to 1
  2041.  
  2042.            If less rows found than what here is specified,
  2043.            all found rows will still be returned.
  2044.  
  2045.            In any case the number returned in stem.0 should
  2046.            be used to know how many rows are returned.
  2047.            stem.0 value will never exceed the number supplied
  2048.            within this argument.
  2049.  
  2050.         5. Null_char - character used to represent a 'NULL'
  2051.                       or any data of unknown datatype
  2052.            (optional, instructional)
  2053.  
  2054.            If not supplied or if incorrect, it is defaulted to ''
  2055.  
  2056.            If the parameter is longer than one character, only the
  2057.            the first character will be used.
  2058.  
  2059.            The entire column width will be filled by this character.
  2060.  
  2061.         6. Varcharlen - maximum length of DB2/2 VARCHAR column data
  2062.            (optional, instructional)
  2063.  
  2064.            If not supplied it is defaulted to FORMAT_VARCHAR_MAX.
  2065.  
  2066.         7. Area_rows - specifies number of lines to be visible
  2067.            when the text area is displayed (optional, instructional)
  2068.  
  2069.            If not supplied it is defaulted to 1.
  2070.  
  2071.         8. Area_cols - specifies the width of the text area
  2072.            when the text area is displayed (optional, instructional)
  2073.  
  2074.            If not supplied it is defaulted to 40.
  2075.  
  2076.         9. Area_name (optional, functioning as input)
  2077.            Name of the listbox to be returned to the server.
  2078.  
  2079.            If not supplied it is defaulted to 'TAREA1'.
  2080.  
  2081.        10. Extension - any parameters for future/specific
  2082.            browsers for the textarea (optional, functioning as input)
  2083.  
  2084.            If not supplied, it is set by default to null.
  2085.  
  2086. Result: HTML file name as supplied in the first parameter.
  2087.  
  2088.         Rexx Null character ('') if error occurs during the function exec.
  2089.  
  2090. Other:  G2SQLCODE contains the DB2/2-returned SQLCODE
  2091.         Generated HTML "select and option" codes in the HTMLfn
  2092.