REXX SQL ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ SQL CALL¹®À» »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º ¼¹öÀÇ ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. AIX ½Ã½ºÅÛÀÇ REXX¸¦ Á¦¿ÜÇϸé, ÇØ´ç ¼¹ö¿¡¼ Áö¿øÇÏ´Â ¸ðµç ¾ð¾î·Î ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ½À´Ï´Ù. AIX ½Ã½ºÅÛ¿¡¼ REXX·Î Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¼ö ÀÖÁö¸¸ ´Ù¸¥ ¾ð¾î·Î ÀÛ¼ºÇÒ °æ¿ì ÀÀ¿ëÇÁ·Î±×·¥Àº AIX¿¡¼ REXX·Î ÀÛ¼ºÇÑ ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ È£ÃâÇÒ ¼ö ¾ø½À´Ï´Ù.
CALL¹®À» »ç¿ëÇÏ¿© Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ ¼¹ö ÀúÀå ÇÁ·Î½Ãµà¾î·Î µ¥ÀÌÅ͸¦ Àü´ÞÇÏ°í ¼¹ö ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ µ¥ÀÌÅ͸¦ ¼ö½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÔ·Â ¹× Ãâ·Â µ¥ÀÌÅÍÀÇ ÀÎÅÍÆäÀ̽º´Â È£½ºÆ® º¯¼öÀÇ ¸ñ·ÏÀÔ´Ï´Ù. SQL ÂüÁ¶¼¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. REXX¿¡¼ ÀϹÝÀûÀ¸·Î ±× ³»¿ë¿¡ ±âÃÊÇÏ¿© È£½ºÆ® º¯¼öÀÇ À¯Çü°ú Å©±â¸¦ ÆÇº°ÇϹǷΠCALL·Î Àü´ÞµÇ´Â Ãâ·Â Àü¿ë º¯¼ö´Â À¯Çü°ú Å©±â¸é¿¡¼ ¿¹»óµÈ Ãâ·Â°ú ºñ¼ýÇÑ dummy µ¥ÀÌÅÍ·Î ÃʱâÈÇØ¾ß ÇÕ´Ï´Ù.
CALL¹®ÀÇ USING DESCRIPTOR ±¸¹®À» »ç¿ëÇÏ¿© SQLDA REXX º¯¼ö¸¦ ÅëÇØ
ÀúÀå ÇÁ·Î½Ãµà¾î¿¡ µ¥ÀÌÅ͸¦ Àü´ÞÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
Ç¥ 36Àº SQLDAÀÇ ¼³Á¤ ¹æ¹ýÀ» ³ªÅ¸³À´Ï´Ù.
Å×ÀÌºí¿¡¼ ':value'´Â ÀÀ¿ëÇÁ·Î±×·¥¿¡ ÇÊ¿äÇÑ °ªÀ» Æ÷ÇÔÇÑ
REXX È£½ºÆ® º¯¼öÀÇ ½ºÅÛÀÔ´Ï´Ù. `
DESCRIPTORÀÇ °æ¿ì 'n'Àº SQLDAÀÇ Æ¯Á¤ sqlvar
±¸¼º¿ä¼Ò¸¦ Áö½ÃÇÏ´Â ¼ýÀÚ °ªÀÔ´Ï´Ù.
¿À¸¥ÂÊÀÇ ¼ýÀڴ ǥ 36 µÚ¿¡ ³ª¿À´Â ÁÖ¸¦ ÀǹÌÇÕ´Ï´Ù.
Ç¥ 36. CALL¹®À» »ç¿ëÇÑ ÀúÀå ÇÁ·Î½Ãµà¾î¿ë Ŭ¶óÀÌ¾ðÆ® Ãø REXX SQLDA
USING DESCRIPTOR | :value.SQLD | 1 |
|
|
|
| :value.n.SQLTYPE | 1 |
|
|
|
| :value.n.SQLLEN | 1 |
|
|
|
| :value.n.SQLDATA | 1 |
|
| 2 |
| :value.n.SQLDIND | 1 |
|
| 2 |
ÁÖ:
SQL CALL¹®À» ½ÇÇàÇÏ¸é µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼ ÀúÀ念¿ªÀ» ÇÒ´çÇϰí REXX º¯¼ö Ç®¿¡¼ REXX º¯¼öÀÇ °ªÀ» °Ë»öÇÕ´Ï´Ù. CALL¹®¿¡ »ç¿ëµÈ SQLDAÀÇ °æ¿ì µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼ SQLTYPE ¹× SQLLEN °ª¿¡ ±âÃÊÇÏ¿© SQLDATA ¹× SQLIND Çʵå¿ë ÀúÀ念¿ªÀ» ÇÒ´çÇÕ´Ï´Ù.
REXX ÀúÀå ÇÁ·Î½Ãµà¾î Áï, È£Ãâ ÁßÀÎ ÇÁ·Î½Ãµà¾î°¡ OS/2 REXX·Î ÀÛ¼ºµÈ ÀÚ½ÅÀÏ °æ¿ì DARI API ¶Ç´Â CALL¹®ÀÇ À¯Çü¿¡¼ Ŭ¶óÀÌ¾ðÆ®°¡ Àü´ÞÇÑ µ¥ÀÌÅÍ´Â ´ÙÀ½°ú °°Àº »çÀü Á¤ÀÇµÈ À̸§À» »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º ¼¹öÀÇ REXX º¯¼ö Ç®¿¡ µé¾î°©´Ï´Ù.
CALL¹®¿¡¼ È£½ºÆ® º¯¼ö¸¦ »ç¿ëÇÒ °æ¿ì ¼¹ö ÇÁ·Î½Ãµà¾î¿¡¼ È£½ºÆ® º¯¼ö·Î ¸®ÅϵǴ µ¥ÀÌÅÍ¿Í È£È¯ °¡´ÉÇÑ À¯ÇüÀÇ °ªÀ¸·Î °¢ È£½ºÆ® º¯¼ö¸¦ ÃʱâÈÇϽʽÿÀ. ÇØ´ç Ç¥½Ã±â°¡ À½¼öÀÏ °æ¿ì¿¡µµ ÀÌ Ãʱâȸ¦ ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.
¼³¸íÀÚ¸¦ »ç¿ëÇÒ °æ¿ì SQLDATA¸¦ ÃʱâÈÇØ¾ß Çϸç SQLDATA¿¡´Â ¼¹ö ÇÁ·Î½Ãµà¾î¿¡¼ ¸®ÅÏÇÏ´Â µ¥ÀÌÅÍ¿Í È£È¯ °¡´ÉÇÑ À¯ÇüÀÇ µ¥ÀÌÅͰ¡ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù. SQLIND Çʵ忡 À½¼ö °ªÀÌ ÀÖ´Â °æ¿ì¿¡µµ ÀÌ Ãʱâȸ¦ ¼öÇàÇØ¾ß ÇÕ´Ï´Ù.
»çÀü Á¤ÀÇµÈ Ãâ·Â sqlda SQLRODAÀÇ ¸ðµç SQLDATA ÇÊµå ¹× SQLIND(³Î(NULL) ÀÔ·Â °¡´ÉÇÑ °æ¿ì)¸¦ ÃʱâÈÇß´ÂÁö È®ÀÎÇϽʽÿÀ. ¿¹¸¦ µé¾î, SQLRODA.SQLD°¡ 2ÀÏ °æ¿ì ´ÙÀ½ Çʵ忡 ¾î¶² µ¥ÀÌÅͰ¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù(ÇØ´ç Ç¥½Ã±â°¡ À½¼öÀÌ°í µ¥ÀÌÅͰ¡ Ŭ¶óÀÌ¾ðÆ®·Î ´Ù½Ã Àü´ÞµÇÁö ¾Ê´Â °æ¿ì¿¡µµ).
µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼ ¸®ÅÏÇÏ´Â SQLDA ±¸Á¶¿¡¼ ½ÊÁø¼ö ÇʵåÀÇ Á¤¹Ðµµ ¹× ½ºÄÉÀÏ °ªÀ» °Ë»öÇÏ·Á¸é REXX ÇÁ·Î±×·¥¿¡¼ SQLDA Ãâ·ÂÀ» ÃʱâÈÇÒ ¶§ sqllen.scale ¹× sqllen.precision °ªÀ» »ç¿ëÇϽʽÿÀ. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.
. . . /* INITIALIZE ONE ELEMENT OF OUTPUT SQLDA */ io_sqlda.sqld = 1 io_sqlda.1.sqltype = 485 /* DECIMAL DATA TYPE */ io_sqlda.1.sqllen.scale = 2 /* DIGITS RIGHT OF DECIMAL POINT */ io_sqlda.1.sqllen.precision = 7 /* WIDTH OF DECIMAL */ io_sqlda.1.sqldata = 00000.00 /* HELPS DEFINE DATA FORMAT */ io_sqlda.1.sqlind = -1 /* NO INPUT DATA */ . . .