ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß ¾È³»¼­


C ¹× C++ÀÇ È£½ºÆ® º¯¼ö

È£½ºÆ® º¯¼ö´Â SQL¹®¿¡¼­ ÂüÁ¶µÇ´Â C ¶Ç´Â C++ ¾ð¾î º¯¼öÀÔ´Ï´Ù. ÀÌ·± º¯¼ö¸¦ »ç¿ëÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ÀÔ·Â µ¥ÀÌÅ͸¦ Àü´ÞÇÏ°í µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥À¸·ÎºÎÅÍ Ãâ·Â µ¥ÀÌÅ͸¦ ¼ö½ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥À» »çÀü ó¸® ÄÄÆÄÀÏÇϸé ÄÄÆÄÀÏ·¯¿¡¼­ ´Ù¸¥ C/C++ º¯¼ö¿Í ¸¶Âù°¡Áö·Î È£½ºÆ® º¯¼ö¸¦ »ç¿ëÇÕ´Ï´Ù. ´ÙÀ½ ±ÔÄ¢Àº È£½ºÆ® º¯¼ö¸¦ ¸í¸í, ¼±¾ð ±×¸®°í »ç¿ëÇÒ ¶§ ´ÙÀ½ Àý¿¡¼­ ¼³¸íµË´Ï´Ù.

C ¹× C++ÀÇ È£½ºÆ® º¯¼ö ¸í¸í

SQL »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ ¼±¾ðµÈ À̸§À¸·Î È£½ºÆ® º¯¼ö¸¦ ½Äº°ÇÕ´Ï´Ù. ´ÙÀ½ ±ÔÄ¢ÀÌ Àû¿ëµË´Ï´Ù.

C ¹× C++ÀÇ È£½ºÆ® º¯¼ö ¼±¾ð

SQL ¼±¾ð ÀýÀº È£½ºÆ® º¯¼ö ¼±¾ðÀ» ½Äº°ÇÏ´Â µ¥ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ÀÌ ÀýÀº ÈÄ¼Ó SQL¹®¿¡¼­ ÂüÁ¶ÇÒ ¼ö Àִ ȣ½ºÆ® º¯¼ö¸¦ ÈÄ¼Ó »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡ ¾Ë·Á ÁÝ´Ï´Ù.

C/C++ »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­´Â À¯È¿ÇÑ C ¶Ç´Â C++ ¼±¾ðÀÇ ºÎ¼Ó ÁýÇÕÀ» À¯È¿ÇÑ È£½ºÆ® º¯¼ö ¼±¾ðÀ¸·Î¸¸ ÀνÄÇÕ´Ï´Ù. ÀÌ·± ¼±¾ð¿¡¼­ ¼ýÀÚ³ª ¹®ÀÚ º¯¼ö¸¦ Á¤ÀÇÇÕ´Ï´Ù. È£½ºÆ® º¯¼öÀÇ Typedefs´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù. È£½ºÆ® º¯¼ö´Â ´ÜÀÏ È£½ºÆ® ±¸Á¶·Î ±×·ìÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. È£½ºÆ® ±¸Á¶¿¡ ´ëÇØ¼­´Â C ¹× C++ÀÇ È£½ºÆ® ±¸Á¶ Áö¿øÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ. C++ Ŭ·¡½º µ¥ÀÌÅÍ ±¸¼º¿øÀ» È£½ºÆ® º¯¼ö·Î Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. Ŭ·¡½º¿¡ ´ëÇØ¼­´Â C ¹× C++¿¡¼­ Ŭ·¡½º µ¥ÀÌÅÍ ±¸¼º¿øÀ» È£½ºÆ® º¯¼ö·Î »ç¿ëÀÇ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

¼ýÀÚ È£½ºÆ® º¯¼ö´Â ¼ýÀÚ SQL ÀÔ·Â ¶Ç´Â Ãâ·Â °ªÀÇ ÀÔ·Â ¶Ç´Â Ãâ·Â º¯¼ö·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹®ÀÚ È£½ºÆ® º¯¼ö´Â ¹®ÀÚ, ³¯Â¥, ½Ã°£ ¶Ç´Â ½Ã°£¼ÒÀÎ SQL ÀÔ·Â ¶Ç´Â Ãâ·Â °ªÀÇ ÀÔ·Â ¶Ç´Â Ãâ·Â º¯¼ö·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ Ãâ·Â º¯¼ö°¡ ¼ö½ÅÇÑ °ªÀ» Æ÷ÇÔÇÒ¸¸Å­ ÃæºÐÈ÷ ±ä Áö È®ÀÎÇØ¾ß ÇÕ´Ï´Ù.

±¸Á¶È­ À¯Çü¿¡ ´ëÇØ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â °Í¿¡ ´ëÇÑ Á¤º¸´Â ±¸Á¶È­ À¯Çü È£½ºÆ® º¯¼ö ¼±¾ðÀ» ÂüÁ¶ÇϽʽÿÀ.

C ¶Ç´Â C++¿¡¼­ ¼ýÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®¿¡¼­ C ¶Ç´Â C++·Î ¼ýÀÚ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

C ¶Ç´Â C++¿¡¼­ ¼ýÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®
 
                                         (1)
>>-+----------+---+----------+---+-float-------------------+---->
   +-auto-----+   +-const----+   |        (2)              |
   +-extern---+   '-volatile-'   +-double------------------+
   +-static---+                  |       (3)               |
   '-register-'                  +-short-------+-----+-----+
                                 |             '-int-'     |
                                 +-+---------------------+-+
                                 | +-sqlint32------------+ |
                                 | |      (4)            | |
                                 | '-long-------+-----+--' |
                                 |              '-int-'    |
                                 '-+---------------------+-'
                                   +-sqlint64------------+
                                   +-__int64-------------+
                                   +-long long--+-----+--+
                                   |            '-int-'  |
                                   |      (5)            |
                                   '-long-------+-----+--'
                                                '-int-'
 
      .-,-----------------------------------------------------------.
      V                                                             |
>--------+------------------------------+---varname--+-----------+--+>
         |  .------------------------.  |            '-=--value--'
         |  V                        |  |
         '-----+-*-+---+----------+--+--'
               '-&-'   +-const----+
                       '-volatile-'
 
>----;---------------------------------------------------------><
 

ÁÖ:

  1. REAL (SQLTYPE 480), ±æÀÌ 4

  2. DOUBLE (SQLTYPE 480), ±æÀÌ 8

  3. SMALLINT (SQLTYPE 500)

  4. ÃÖ´ë ÀÀ¿ëÇÁ·Î±×·¥ À̽ļºÀ» À§ÇØ INTEGER ¹× BIGINT È£½ºÆ® º¯¼öÀÎ °æ¿ì¿¡´Â sqlint32¿Í sqlint64¸¦ »ç¿ëÇϽʽÿÀ. ±âº»ÀûÀ¸·Î, ±ä È£½ºÆ® º¯¼ö¸¦ »ç¿ëÇϸé, 64 BIT UNIX¿Í °°Àº 64ºñÆ® ¼ö·® Ç÷§Æû¿¡¼­ »çÀü ó¸® ÄÄÆÄÀÏ ¿À·ù SQL0402°¡ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. PREP ¿É¼Ç LONGERROR NO¸¦ »ç¿ëÇÏ¿© DB2¿¡¼­ ±ä º¯¼ö¸¦ ½ÂÀÎ °¡´ÉÇÑ È£½ºÆ® º¯¼ö À¯ÇüÀ¸·Î ½ÂÀÎÇÏ°Ô ¸¸µé°í À̸¦ BIGINT º¯¼ö·Î ó¸®ÇϽʽÿÀ.

  5. ÃÖ´ë ÀÀ¿ëÇÁ·Î±×·¥ À̽ļºÀ» À§ÇØ INTEGER ¹× BIGINT È£½ºÆ® º¯¼öÀÎ °æ¿ì¿¡´Â sqlint32¿Í sqlint64¸¦ »ç¿ëÇϽʽÿÀ. BIGINT µ¥ÀÌÅÍ À¯ÇüÀ» »ç¿ëÇÏ·Á¸é Ç÷§Æû¿¡¼­ 64ºñÆ® Á¤¼ö °ªÀ» Áö¿øÇØ¾ß ÇÕ´Ï´Ù. ±âº»ÀûÀ¸·Î, ±ä È£½ºÆ® º¯¼ö¸¦ »ç¿ëÇϸé, 64 BIT UNIX¿Í °°Àº 64ºñÆ® ¼ö·® Ç÷§Æû¿¡¼­ »çÀü ó¸® ÄÄÆÄÀÏ ¿À·ù SQL0402°¡ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. PREP ¿É¼Ç LONGERROR NO¸¦ »ç¿ëÇÏ¿© DB2¿¡¼­ ±ä º¯¼ö¸¦ ½ÂÀÎ °¡´ÉÇÑ È£½ºÆ® º¯¼ö À¯ÇüÀ¸·Î ½ÂÀÎÇÏ°Ô ¸¸µé°í À̸¦ BIGINT º¯¼ö·Î ó¸®ÇϽʽÿÀ.

¾ç½Ä 1: C/C++¿¡¼­ °íÁ¤ ±æÀÌÀÇ ³Î·Î Á¾·áµÇ´Â ¹®ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº C ¶Ç´Â C++¿¡¼­ °íÁ¤ ±æÀÌÀÇ ³Î·Î Á¾·áµÇ´Â(null-terminated) ¹®ÀÚ È£½ºÆ® º¯¼ö¿¡ ´ëÇÑ ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

¾ç½Ä 1: C/C++¿¡¼­ °íÁ¤ ±æÀÌÀÇ ³Î·Î Á¾·áµÇ´Â ¹®ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®
 
>>-+----------+---+----------+--+----------+--char-------------->
   +-auto-----+   +-const----+  '-unsigned-'
   +-extern---+   '-volatile-'
   +-static---+
   '-register-'
 
      .-,-----------------------------------.
      V                                     |
>---------+-| CHAR |-----+---+-----------+--+--;---------------><
          '-| C String |-'   '-=--value--'
 
 
CHAR
 
                                              (1)
|--+------------------------------+---varname-------------------|
   |  .------------------------.  |
   |  V                        |  |
   '-----+-*-+---+----------+--+--'
         '-&-'   +-const----+
                 '-volatile-'
 
 
C String
 
                                                                     (2)
|---+-varname-------------------------------------------+---[length]------|
    '-(--+------------------------------+---varname--)--'
         |  .------------------------.  |
         |  V                        |  |
         '-----+-*-+---+----------+--+--'
               '-&-'   +-const----+
                       '-volatile-'
 

ÁÖ:

  1. CHAR (SQLTYPE 452), length 1

  2. ³Î·Î Á¾·áµÇ´Â C ¹®ÀÚ¿­ (SQLTYPE 460); ±æÀÌ´Â À¯È¿ÇÑ »ó¼ö Ç¥Çö½ÄÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù.

¾ç½Ä 2: C/C++¿¡¼­ º¯¼ö ±æÀÌ ¹®ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº C ¶Ç´Â C++¿¡¼­ º¯¼ö ±æÀÌ ¹®ÀÚ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

¾ç½Ä 2:  C/C++¿¡¼­ º¯¼ö ±æÀÌ ¹®ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®
 
>>-+----------+---+----------+--        struct--+-----+--------->
   +-auto-----+   +-const----+                  '-tag-'
   +-extern---+   '-volatile-'
   +-static---+
   '-register-'
 
                                                                    (1)
>----{--short--+-----+--var1--;--+----------+--char--var2--[length]--------;--}->
               '-int-'           '-unsigned-'
 
      .-,-------------------------------------------------------------------------------.
      V                                                                                 |
>--------+------------------------------+---varname--+-------------------------------+--+>
         |  .------------------------.  |            '-=--{--value-1--,--value-2--}--'
         |  V                        |  |
         '-----+-*-+---+----------+--+--'
               '-&-'   +-const----+
                       '-volatile-'
 
>----;---------------------------------------------------------><
 

ÁÖ:

  1. Çü½Ä 2¿¡¼­ ±æÀÌ´Â À¯È¿ÇÑ »ó¼ö Ç¥Çö½ÄÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. Æò°¡ µÚÀÇ °ªÀ¸·Î È£½ºÆ® º¯¼ö°¡ VARCHAR(SQLTYPE 448) ¶Ç´Â LONG VARCHAR(SQLTYPE 456)ÀÎÁö ÆÇº°ÇÕ´Ï´Ù.

º¯¼ö ±æÀÌ ¹®ÀÚ È£½ºÆ® º¯¼ö °í·Á»çÇ×:

  1. µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼­ °¡´ÉÇÑ ¶¼ ¹®ÀÚ µ¥ÀÌÅ͸¦ ¾ç½Ä 1À̳ª ¾ç½Ä 2·Î º¯È¯ÇÑÁö¸¸ ¾ç½Ä 1Àº CHAR ¶Ç´Â VARCHAR Ä÷³ À¯Çü¿¡ ´ëÀÀÇÏÁö¸¸ ¾ç½Ä 2´Â VARCHAR ¹× LONG VARCHAR Ä÷³ À¯Çü¿¡ ´ëÀÀÇÕ´Ï´Ù.

  2. ¾ç½Ä 1¿¡ ±æÀÌ ÁöÁ¤ÀÚ [n]À» »ç¿ëÇÒ °æ¿ì Æò°¡ µÚ ±æÀÌ ÁöÁ¤ÀÚ °ªÀº 32672º¸´Ù À۰ųª °°¾Æ¾ß ÇÏ¸ç º¯¼ö¿¡ Æ÷ÇԵǴ ¹®ÀÚ¿­Àº ³Î·Î Á¾·áµÇ¾î¾ß ÇÕ´Ï´Ù.

  3. ¾ç½Ä 2¸¦ »ç¿ëÇÒ °æ¿ì Æò°¡ µÚ ±æÀÌ ÁöÁ¤ÀÚÀÇ °ªÀº 32 700º¸´Ù À۰ųª °°¾Æ¾ß ÇÕ´Ï´Ù.

  4. ¾ç½Ä 2¿¡¼­ var1°ú var2Àº ¿¬»êÀÚ°¡ ¾ø´Â ´Ü¼ø º¯¼ö ÂüÁ¶¿©¾ß Çϸç È£½ºÆ® º¯¼ö(varnameÀÌ È£½ºÆ® º¯¼ö)·Î »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

  5. varnameÀº ´Ü¼ø º¯¼ö À̸§À̰ųª *varname°ú °°Àº ¿¬»êÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. C ¹× C++ÀÇ Æ÷ÀÎÅÍ µ¥ÀÌÅÍ À¯Çü¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

  6. »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ ¸ðµç È£½ºÆ® º¯¼öÀÇ SQLTYPE¿Í SQLLENÀ» ÆÇº°ÇÕ´Ï´Ù. È£½ºÆ® º¯¼ö°¡ Ç¥½Ã±â º¯¼ö°¡ Æ÷ÇÔµÈ SQL¹®¿¡ ³ªÅ¸³ª¸é ±× ¸í·É¹® Áö¼Ó±â°£ Áß ±âº» SQLTYPE+1ÀÌ µÇµµ·Ï ÇÒ´çµË´Ï´Ù.

  7. »çÀü ó¸® ÄÄÆÄÀÏ·¯´Â C ¶Ç´Â C++¿¡¼­ ±¸¹®»óÀ¸·Î À¯È¿ÇÏÁö ¾ÊÀº ¼±¾ðÀ» ¸î °¡Áö Çã¿ëÇÕ´Ï´Ù. ƯÁ¤ ¼±¾ð ±¸¹®¿¡ ´ëÇØ¼­ ±Ã±ÝÇÑ Á¡ÀÌ ÀÖÀ¸¸é ÄÄÆÄÀÏ·¯ ¼³¸í¼­¸¦ ÂüÁ¶ÇϽʽÿÀ.

C ¹× C++ÀÇ Ç¥½Ã±â º¯¼ö

Ç¥½Ã±â º¯¼ö´Â short µ¥ÀÌÅÍ À¯ÇüÀ¸·Î ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù.

C ¶Ç´Â C++ÀÇ ±×·¡ÇÈ È£½ºÆ® º¯¼ö ¼±¾ð

±×·¡ÇÈ È£½ºÆ® º¯¼ö ¼±¾ðÀº ´ÙÀ½ ¼¼ ¾ç½Ä Áß Çϳª¸¦ ÃëÇÒ ¼ö ÀÖ½À´Ï´Ù.

±×·¡ÇÈ È£½ºÆ® º¯¼ö »ç¿ë¿¡ ´ëÇØ¼­´Â C ¹× C++¿¡¼­ÀÇ ±×·¡ÇÈ È£½ºÆ® º¯¼ö 󸮿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

±×·¡ÇÈ ¼±¾ð ±¸¹®(´ÜÀÏ ±×·¡ÇÈ ¾ç½Ä°ú ³Î·Î Á¾·áµÇ´Â ±×·¡ÇÈ ¾ç½Ä)Àº ´ÜÀÏ ±×·¡ÇÈ ¾ç½Ä°ú ³Î·Î Á¾·áµÇ´Â ±×·¡ÇÈ ¾ç½ÄÀ» »ç¿ëÇÏ¿© ±×·¡ÇÈ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

±×·¡ÇÈ ¼±¾ð ±¸¹®(´ÜÀÏ ±×·¡ÇÈ ¾ç½Ä°ú ³Î·Î Á¾·áµÇ´Â ±×·¡ÇÈ ¾ç½Ä)
 
                                    (1)
>>-+----------+---+----------+---+-----------+------------------>
   +-auto-----+   +-const----+   +-sqldbchar-+
   +-extern---+   '-volatile-'   '-wchar_t---'
   +-static---+
   '-register-'
 
      .-,-----------------------------------.
      V                                     |
>---------+-| CHAR |-----+---+-----------+--+--;---------------><
          '-| C String |-'   '-=--value--'
 
 
CHAR
 
                                              (2)
|--+------------------------------+---varname-------------------|
   |  .------------------------.  |
   |  V                        |  |
   '-----+-*-+---+----------+--+--'
         '-&-'   +-const----+
                 '-volatile-'
 
 
C String
 
                                                                     (3)
|---+-varname-------------------------------------------+---[length]------|
    '-(--+------------------------------+---varname--)--'
         |  .------------------------.  |
         |  V                        |  |
         '-----+-*-+---+----------+--+--'
               '-&-'   +-const----+
                       '-volatile-'
 

ÁÖ:

  1. µÎ ±×·¡ÇÈ À¯Çü Áß »ç¿ëÇÒ À¯ÇüÀ» ÆÇº°ÇÏ·Á¸é C ¹× C++¿¡¼­ wchar_t ¶Ç´Â sqldbchar µ¥ÀÌÅÍ À¯Çü ¼±Åÿ¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

  2. GRAPHIC (SQLTYPE 468), length 1

  3. ³Î·Î Á¾·áµÇ´Â ±×·¡ÇÈ ¹®ÀÚ¿­(SQLTYPE 400)

±×·¡ÇÈ È£½ºÆ® º¯¼ö °í·Á»çÇ×:

  1. ´ÜÀÏ ±×·¡ÇÈ ¾ç½Ä¿¡¼­ 468 ¶Ç´Â 469ÀÇ SQLTYPE·Î, ±æÀ̰¡ 1ÀÎ °íÁ¤ ±æÀÌ ±×·¡ÇÈ ¹®ÀÚ¿­À» ¼±¾ðÇÕ´Ï´Ù.

  2. value´Â Ãʱ⠼³Á¤ÀÚÀÔ´Ï´Ù. WCHARTYPE CONVERT ¿É¼ÇÀ» »ç¿ëÇÒ °æ¿ì ¿ÍÀÌµå ¹®ÀÚ ¹®ÀÚ¿­ ¸®ÅÍ·²(L-¸®ÅÍ·²)À» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

  3. length´Â À¯È¿ÇÑ »ó¼ö Ç¥Çö½ÄÀÌ µÉ ¼ö ÀÖÀ¸¸ç, Æò°¡ µÚ ±× °ªÀº 1º¸´Ù Å©°Å³ª °°¾Æ¾ß Çϸç VARGRAPHICÀÇ ÃÖ´ë ±æÀÌ 16 336º¸´Ù ÀÛ¾Æ¾ß ÇÕ´Ï´Ù.

  4. ³Î·Î Á¾·áµÇ´Â ±×·¡ÇÈ ¹®ÀÚ¿­Àº Ç¥ÁØ ·¹º§ »çÀü ó¸® ÄÄÆÄÀÏ ¿É¼Ç ¼³Á¤ÀÇ °ª¿¡ µû¶ó ´Ù¸£°Ô Á¶ÀýµË´Ï´Ù. C ¹× C++ÀÇ ³Î·Î Á¾·áµÈ ¹®ÀÚ¿­¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

±×·¡ÇÈ ¼±¾ðÀÇ ±¸¹®(VARGRAPHIC ±¸Á¶ ¾ç½Ä)Àº VARGRAPHIC ±¸Á¶ ¾ç½ÄÀ» »ç¿ëÇÏ¿© ±×·¡ÇÈ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

±×·¡ÇÈ ¼±¾ðÀÇ ±¸¹®(VARGRAPHIC ±¸Á¶ ¾ç½Ä)
 
>>-+----------+---+----------+--        struct--+-----+--------->
   +-auto-----+   +-const----+                  '-tag-'
   +-extern---+   '-volatile-'
   +-static---+
   '-register-'
 
                                     (1)                         (2)
>----{--short--+-----+--var-1--;--+-----------+---var-2--[length-----]---;--}->
               '-int-'            +-sqldbchar-+
                                  '-wchar_t---'
 
      .-,-----------------------------------------------------.
      V                                                       |
>--------+------------------------------+---| Variable |--;---+-><
         |  .------------------------.  |
         |  V                        |  |
         '-----+-*-+---+----------+--+--'
               '-&-'   +-const----+
                       '-volatile-'
 
Variable
 
|---variable-name----+-------------------------------+----------|
                     '-=--{--value-1--,--value-2--}--'
 

ÁÖ:

  1. µÎ ±×·¡ÇÈ À¯Çü Áß »ç¿ëÇÒ À¯ÇüÀ» ÆÇº°ÇÏ·Á¸é C ¹× C++¿¡¼­ wchar_t ¶Ç´Â sqldbchar µ¥ÀÌÅÍ À¯Çü ¼±Åÿ¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

  2. ±æÀÌ´Â À¯È¿ÇÑ »ó¼ö Ç¥Çö½ÄÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. Æò°¡ µÚÀÇ °ªÀ¸·Î È£½ºÆ® º¯¼ö°¡ VARGRAPHIC(SQLTYPE 464) ¶Ç´Â LONG VARGRAPHIC(SQLTYPE 472)ÀÎÁö ÆÇº°ÇÕ´Ï´Ù. ±æÀÌ °ªÀº 1°ú °°°Å³ª Ä¿¾ß Çϸé LONG VARGRAPHICÀÇ ÃÖ´ë ±æÀÌ(16350)º¸´Ù ÀÛ¾Æ¾ß ÇÕ´Ï´Ù.

±×·¡ÇÈ ¼±¾ð(VARGRAPHIC ±¸Á¶ ¾ç½Ä) °í·Á»çÇ×:

  1. var-1 ¹× var-2´Â ¿¬»êÀÚ°¡ ¾ø´Â ´Ü¼ø º¯¼ö ÂüÁ¶¿©¾ß Çϸç È£½ºÆ® º¯¼ö·Î »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

  2. value-1 ¹× value-2´Â var-1 ¹× var-2ÀÇ Ãʱ⠼³Á¤ÀÚÀÔ´Ï´Ù. value-1Àº Á¤¼ö¿©¾ß Çϰí WCHARTYPE CONVERT »çÀü ó¸® ÄÄÆÄÀÏ·¯ ¿É¼ÇÀ» »ç¿ëÇÒ °æ¿ì value-2´Â ¿ÍÀÌµå ¹®ÀÚ ¹®ÀÚ¿­ ¸®ÅÍ·²(L-¸®ÅÍ·²)À̾î¾ß ÇÕ´Ï´Ù.

  3. tag ±¸Á¶´Â ´Ù¸¥ µ¥ÀÌÅÍ ¿µ¿ªÀ» Á¤ÀÇÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ ±× ÀÚü´Â È£½ºÆ® º¯¼ö·Î »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

C ¶Ç´Â C++ÀÇ LOB µ¥ÀÌÅÍ ¼±¾ð

C/C++¿¡¼­ ´ëÇü ¿ÀºêÁ§Æ®(LOB) È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº C ¶Ç´Â C++¿¡¼­ ´ëÇü ¿ÀºêÁ§Æ®(LOB) È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

C/C++¿¡¼­ ´ëÇü ¿ÀºêÁ§Æ®(LOB) È£½ºÆ® º¯¼öÀÇ ±¸¹®
 
>>-+----------+---+----------+--SQL TYPE IS----+-BLOB---+------->
   +-auto-----+   +-const----+                 +-CLOB---+
   +-extern---+   '-volatile-'                 '-DBCLOB-'
   +-static---+
   '-register-'
 
              (1)
>-----(length-----)--------------------------------------------->
 
      .-,-------------------------------------------------------------------------------------.
      V                                                                                       |
>--------+------------------------------+---variable-name--| LOB Data |-----------------------+>
         |  .------------------------.  |
         |  V                        |  |
         '-----+-*-+---+----------+--+--'
               '-&-'   +-const----+
                       '-volatile-'
 
>----;---------------------------------------------------------><
 
 
LOB Data
 
|--+-------------------------------+----------------------------|
   +-={init-len,"init-data"}-------+
   +-=SQL_BLOB_INIT("init-data")---+
   +-=SQL_CLOB_INIT("init-data")---+
   '-=SQL_DBCLOB_INIT("init-data")-'
 

ÁÖ:

  1. ±æÀÌ´Â À¯È¿ÇÑ »ó¼ö Ç¥Çö½ÄÀÌ µÉ ¼ö ÀÖÀ¸¸ç ¿©±â¼­ K, M ¶Ç´Â G »ó¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. BLOB ¹× CLOB¸¦ Æò°¡ÇÑ ÈÄ ±æÀÌ °ªÀº 1 <= length <= 2 147 483 647À̾î¾ß ÇÕ´Ï´Ù. DBCLOB¿¡ ´ëÇØ Æò°¡ÇÑ ÈÄ ±æÀÌ °ªÀº 1 <= length <= 1 073 741 823À̾î¾ß ÇÕ´Ï´Ù.

LOB È£½ºÆ® º¯¼ö °í·Á»çÇ×:

  1. ÇÔ¼ö·Î Àü´ÞµÇ´Â LOB À¯Çü È£½ºÆ® º¯¼ö¿¡ ´ëÇØ À¯Çü Á¡°Ë°ú ÇÔ¼ö °áÁ¤À» ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ¼¼ °¡Áö LOB À¯ÇüÀ» ¼­·Î ±¸º°ÇÏ·Á¸é SQL TYPE ISÀýÀÌ ÇÊ¿äÇÕ´Ï´Ù.

  2. SQL TYPE IS, BLOB, CLOB, DBCLOB, K, M, G´Â ´ë¼Ò¹®ÀÚ È¥ÇÕÀ¸·Î ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù.

  3. Ãʱ⠹®ÀÚ¿­ "init-data"¿¡ Çã¿ëµÈ ÃÖ´ë ±æÀÌ´Â ¹®ÀÚ¿­ ºÐ¸®¹®ÀÚ¸¦ Æ÷ÇÔÇÏ´Â 32702 ¹ÙÀÌÆ®(»çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ C/C++ ¹®ÀÚ¿­ÀÇ ±âÁ¸ ÇѰè¿Í µ¿ÀÏ)ÀÔ´Ï´Ù.

  4. Ãʱ⠱æÀÌ init-lenÀº ¼ýÀÚ »ó¼ö¿©¾ß ÇÕ´Ï´Ù. Áï, K, M ¶Ç´Â G¸¦ Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù.

  5. LOBÀÇ ±æÀÌ´Â ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù. Áï, ´ÙÀ½ ¼±¾ðÀº Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.

         SQL TYPE IS BLOB my_blob;
    

  6. ¼±¾ð¿¡¼­ LOB¸¦ ÃʱâÈ­ÇÏÁö ¾ÊÀº °æ¿ì »çÀü ó¸® ÄÄÆÄÀÏ·¯ »ý¼º Äڵ忡¼­ ÃʱâÈ­´Â ½ÇÇàµÇÁö ¾Ê½À´Ï´Ù.

  7. DBCLOB¸¦ ÃʱâÈ­ÇÑ °æ¿ì »ç¿ëÀÚ°¡ ¹®ÀÚ¿­ÀÇ Á¢µÎºÎ·Î 'L'(¿ÍÀÌµå ¹®ÀÚ ¹®ÀÚ¿­ Áö½Ã)À» ÁöÁ¤ÇØ¾ß ÇÕ´Ï´Ù.

    ÁÖ:WCHARTYPE CONVERT »çÀü ó¸® ÄÄÆÄÀÏ ¿É¼ÇÀ» ¼±ÅÃÇÑ °æ¿ì »çÀü ó¸® ÄÄÆÄÀÏ ÇÁ·Î±×·¥¿¡¼­ L"Hello"¿Í °°Àº ¿ÍÀÌµå ¹®ÀÚ ¸®ÅÍ·²¸¸ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.

  8. »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ È£½ºÆ® º¯¼öÀÇ À¯ÇüÀ¸·Î º¯È¯ÇÏ´Â µ¥ »ç¿ëÇÒ ¼ö ÀÖ´Â ±¸Á¶ ű׸¦ »ý¼ºÇÕ´Ï´Ù.

BLOB ¿¹:

¼±¾ð:

     static Sql Type is Blob(2M) my_blob=SQL_BLOB_INIT("mydata");

±× °á°ú ´ÙÀ½ ±¸Á¶°¡ »ý¼ºµË´Ï´Ù.

     static struct my_blob_t {
           sqluint32        length;
           char             data[2097152];
      } my_blob=SQL_BLOB_INIT("mydata");

CLOB ¿¹:

¼±¾ð:

      volatile sql type is clob(125m) *var1, var2 = {10, "data5data5"};

±× °á°ú ´ÙÀ½ ±¸Á¶°¡ »ý¼ºµË´Ï´Ù.

      volatile struct var1_t {
           sqluint32        length;
           char             data[131072000];
      } * var1, var2 = {10, "data5data5"};

DBCLOB ¿¹:

¼±¾ð:

      SQL TYPE IS DBCLOB(30000) my_dbclob1;

WCHARTYPE NOCONVERT ¿É¼ÇÀ¸·Î »çÀü ó¸® ÄÄÆÄÀÏÇÏ¸é ´ÙÀ½ ±¸Á¶°¡ »ý¼ºµË´Ï´Ù.

     struct my_dbclob1_t {
          sqluint32        length;
          sqldbchar        data[30000];
     } my_dbclob1;

¼±¾ð:

      SQL TYPE IS DBCLOB(30000) my_dbclob2 = SQL_DBCLOB_INIT(L"mydbdata");

WCHARTYPE CONVERT ¿É¼ÇÀ¸·Î »çÀü ó¸® ÄÄÆÄÀÏÇÏ¸é ´ÙÀ½ ±¸Á¶°¡ »ý¼ºµË´Ï´Ù.

     struct my_dbclob2_t {
          sqluint32        length;
          wchar_t          data[30000];
     } my_dbclob2 = SQL_DBCLOB_INIT(L"mydbdata");

C ¶Ç´Â C++ÀÇ LOB LOB À§Ä¡ ÁöÁ¤ÀÚ ¼±¾ð

C/C++¿¡¼­ ´ëÇü ¿ÀºêÁ§Æ®(LOB) À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº C ¶Ç´Â C++¿¡¼­ ´ëÇü ¿ÀºêÁ§Æ®(LOB) À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

C/C++¿¡¼­ ´ëÇü ¿ÀºêÁ§Æ®(LOB) À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼öÀÇ ±¸¹®
 
>>-+----------+---+----------+--SQL TYPE IS--------------------->
   +-auto-----+   +-const----+
   +-extern---+   '-volatile-'
   +-static---+
   '-register-'
 
                           .-,---------------.
                           V                 |
>-----+-BLOB_LOCATOR---+-------| Variable |--+--;--------------><
      +-CLOB_LOCATOR---+
      '-DBCLOB_LOCATOR-'
 
 
Variable
 
|-+-----------------------------------------------------------------+-|
  |  .------------------------.                                     |
  |  V                        |                                     |
  '-----+-*-+---+----------+--+--variable-name----+--------------+--'
        '-&-'   +-const----+                      '-= init-value-'
                '-volatile-'
 

LOB À§Ä¡ ÁöÁ¤ÀÚ È£½ºÆ® º¯¼ö °í·Á»çÇ×:

  1. SQL TYPE IS, BLOB_LOCATOR, CLOB_LOCATOR, DBCLOB_LOCATOR´Â ´ë¼Ò¹®ÀÚ È¥ÇÕÀ¸·Î ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù.

  2. init-value´Â Æ÷ÀÎÅÍ ¹× ÂüÁ¶ À§Ä¡ ÁöÁ¤ÀÚ º¯¼öÀÇ ÃʱâÈ­¸¦ Çã¿ëÇÕ´Ï´Ù. ´Ù¸¥ ÃʱâÈ­ À¯Çü¿¡´Â ¾Æ¹« Àǹ̵µ ¾ø½À´Ï´Ù.

CLOB À§Ä¡ ÁöÁ¤ÀÚ ¿¹(´Ù¸¥ LOB À§Ä¡ ÁöÁ¤ÀÚ À¯Çü ¼±¾ðÀº ºñ½Á):

¼±¾ð:

     SQL TYPE IS CLOB_LOCATOR my_locator;

±× °á°ú ´ÙÀ½ ¼±¾ðÀÌ »ý¼ºµË´Ï´Ù.

     sqlint32 my_locator;

C ¶Ç´Â C++ÀÇ ÆÄÀÏ ÂüÁ¶ ¼±¾ð

C/C++¿¡¼­ ÆÄÀÏ ÂüÁ¶ È£½ºÆ® º¯¼öÀÇ ±¸¹®Àº C ¶Ç´Â C++¿¡¼­ ÆÄÀÏ ÂüÁ¶ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÏ´Â ±¸¹®À» ³ªÅ¸³À´Ï´Ù.

C/C++¿¡¼­ ÆÄÀÏ ÂüÁ¶ È£½ºÆ® º¯¼öÀÇ ±¸¹®
 
>>-+----------+---+----------+--SQL TYPE IS----+-BLOB_FILE---+-->
   +-auto-----+   +-const----+                 +-CLOB_FILE---+
   +-extern---+   '-volatile-'                 '-DBCLOB_FILE-'
   +-static---+
   '-register-'
 
      .-,---------------.
      V                 |
>---------| Variable |--+--;-----------------------------------><
 
 
Variable
 
|-+-----------------------------------------------------------------+-|
  |  .------------------------.                                     |
  |  V                        |                                     |
  '-----+-*-+---+----------+--+--variable-name----+--------------+--'
        '-&-'   +-const----+                      '-= init-value-'
                '-volatile-'
 

ÁÖ:

CLOB ÆÄÀÏ ÂüÁ¶ ¿¹(´Ù¸¥ LOB ÆÄÀÏ ÂüÁ¶ ¼±¾ðÀº ºñ½Á):

¼±¾ð:

     static volatile SQL TYPE IS BLOB_FILE my_file;

±× °á°ú ´ÙÀ½ ±¸Á¶°¡ »ý¼ºµË´Ï´Ù.

     static volatile struct {
          sqluint32        name_length;
          sqluint32        data_length;
          sqluint32        file_options;
                   char    name[255];
     } my_file;

C ¹× C++ÀÇ È£½ºÆ® º¯¼ö ÃʱâÈ­

C++ ¼±¾ð Àý¿¡¼­´Â °ýÈ£¸¦ »ç¿ëÇÏ¿© È£½ºÆ® º¯¼ö¸¦ ÃʱâÈ­ÇÒ ¼ö ¾ø½À´Ï´Ù. ´ÙÀ½ ¿¹´Â ¼±¾ð Àý¿¡¼­ ¿Ã¹Ù¸£°Ô ÃʱâÈ­ÇÏ´Â ¹æ¹ý°ú Ʋ¸®°Ô ÃʱâÈ­ÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³À´Ï´Ù.

  EXEC SQL BEGIN DECLARE SECTION;
       short my_short_2 = 5;       /* correct   */
       short my_short_1(5);        /* incorrect */
  EXEC SQL END DECLARE SECTION;

C ¸ÅÅ©·Î ¿¹

C/C++ »çÀü ó¸® ÄÄÆÄÀÏ·¯´Â ¼±¾ð Àý¿¡¼­ ¼±¾ð¿¡ »ç¿ëÇÑ C ¸ÅÅ©·Î¸¦ Á÷Á¢ ó¸®ÇÒ ¼ö ¾ø½À´Ï´Ù. ´ë½Å ¿ÜºÎ C ¼±Çà 󸮱â·Î ¼Ò½º ÆÄÀÏÀ» ¸ÕÀú ¼±Çà ó¸®ÇØ¾ß ÇÕ´Ï´Ù. ±×·¸°Ô ÇÏ·Á¸é PREPROCESSOR ¿É¼ÇÀ» ÅëÇØ »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡ C ¼±Çà 󸮱⸦ È£ÃâÇÏ´Â Á¤È®ÇÑ ¸í·ÉÀ» ÁöÁ¤ÇϽʽÿÀ.

PREPROCESSOR ¿É¼ÇÀ» ÁöÁ¤ÇÏ¸é »çÀü ó¸® ÄÄÆÄÀÏ·¯°¡ ¸ÕÀú SQL INCLUDE¹®¿¡¼­ ÂüÁ¶ÇÑ ¸ðµç ÆÄÀÏÀÇ ³»¿ëÀ» ¼Ò½º ÆÄÀÏ·Î ÅëÇÕÇÏ¿© ¸ðµç SQL INCLUDE¹®À» ó¸®ÇÕ´Ï´Ù. ±×·± ´ÙÀ½ »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ »ç¿ëÀÚ°¡ ¼öÁ¤ÇÑ ¼Ò½º ÆÄÀÏÀ» ÅëÇØ ÀÔ·ÂÀ¸·Î ÁöÁ¤ÇÑ ¸í·ÉÀ» »ç¿ëÇÏ¿© ¿ÜºÎ C ¼±Çà 󸮱⸦ È£ÃâÇÕ´Ï´Ù. ¼±Çà ó¸® ÆÄÀÏ(»çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ È®ÀåÀÚ¸¦ Ç×»ó ".i"·Î ¿¹»ó)Àº »çÀü ó¸® ÄÄÆÄÀÏ ÇÁ·Î¼¼½ºÀÇ ³ª¸ÓÁö¿¡ ´ëÇØ »õ·Î¿î ¼Ò½º ÆÄÀÏ·Î »ç¿ëµË´Ï´Ù.

»çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ »ý¼ºÇÑ #line ¸ÅÅ©·Î´Â ´õ ÀÌ»ó ¿ø·¡ÀÇ ¼Ò½º ÆÄÀÏÀ» ÂüÁ¶ÇÏÁö ¾Ê´Â ´ë½Å ¼±Çà ó¸® ÆÄÀÏÀ» ÂüÁ¶ÇÕ´Ï´Ù. ÄÄÆÄÀÏ·¯ ¿À·ù¸¦ ¿ø·¡ÀÇ ¼Ò½º ÆÄÀϰú ´Ù½Ã °ü·Ã½ÃŰ·Á¸é ¼±Çà ó¸® ÆÄÀÏ¿¡ ÁÖ¼®À» Æ÷ÇÔÇϽʽÿÀ. ±×·¸°Ô Çϸé Çì´õ ÆÄÀÏÀ» Æ÷ÇÔÇÏ¿© ¿ø·¡ ¼Ò½º ÆÄÀÏÀÇ ´Ù¾çÇÑ ÀýÀ» ½±°Ô ãÀ» ¼ö ÀÖ½À´Ï´Ù. ÁÖ¼®À» Æ÷ÇÔÇÑ ¿É¼ÇÀº C ¼±Çà 󸮱⿡¼­ °øÅëÀûÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç PREPROCESSOR ¿É¼ÇÀ» ÅëÇØ ÁöÁ¤ÇÑ ¸í·É¿¡ ÀÌ ¿É¼ÇÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ »ý¼ºÇÑ °Í°ú Ʋ¸®°Ô È¥ÇÕµÉ ¼ö ÀÖÀ¸¹Ç·Î C ¼±Çà 󸮱â·Î #line ¸ÅÅ©·Î ÀÚü¸¦ Ãâ·ÂÇØ¼± ¾ÈµË´Ï´Ù.

¸ÅÅ©·Î È®Àå »ç¿ë¿¡ ´ëÇÑ ÁÖ:

  1. PREPROCESSOR ¿É¼ÇÀ» ÅëÇØ ÁöÁ¤ÇÑ ¸í·É¿¡ ÀÔ·Â ÆÄÀÏÀÇ À̸§À» Á¦¿ÜÇÑ ¸ðµç ¿øÇÏ´Â ¿É¼ÇÀ» Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, AIXÀÇ IBM C °æ¿ì ´ÙÀ½ ¿É¼ÇÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

       xlC -P -DMYMACRO=1
    

  2. »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­´Â .i È®ÀåÀÚ¸¦ °¡Áø ¼±Çà ó¸® ÆÄÀÏÀ» »ý¼ºÇÏ´Â ¸í·ÉÀ» ±â´ëÇÕ´Ï´Ù. ±×·¯³ª ÀçÁöÁ¤À» »ç¿ëÇÏ¿© ¼±Çà ó¸® ÆÄÀÏÀ» »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ ¿É¼ÇÀ» »ç¿ëÇÏ¿© ¼±Çà ó¸® ÆÄÀÏÀ» »ý¼ºÇÒ ¼ö ¾ø½À´Ï´Ù.

       xlC -E > x.i
    

  3. ¿ÜºÎ C ¼±Çà 󸮱⿡¼­ ¹ß°ßÇÏ´Â ¸ðµç ¿À·ù´Â ¿ø·¡ ¼Ò½º ÆÄÀÏ¿¡ ÇØ´çÇÏ´Â À̸§ÀÇ ÆÄÀÏ·Î º¸°íµË´Ï´Ù. ±×·¯³ª ÀÌ ÆÄÀÏÀÇ È®ÀåÀÚ´Â µÇÁö¸¸ .errÀÔ´Ï´Ù.

¿¹¸¦ µé¾î, ´ÙÀ½°ú °°ÀÌ ¼Ò½º Äڵ忡¼­ ¸ÅÅ©·Î È®ÀåÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

#define SIZE 3
 
  EXEC SQL BEGIN DECLARE SECTION;
  char a[SIZE+1];
  char b[(SIZE+1)*3];
        struct
  {
          short length;
    char  data[SIZE*6];
  } m;
  SQL TYPE IS BLOB(SIZE+1) x;
  SQL TYPE IS CLOB((SIZE+2)*3) y;
  SQL TYPE IS DBCLOB(SIZE*2K) z;
  EXEC SQL END DECLARE SECTION;

PREPROCESSOR ¿É¼Ç »ç¿ë ÈÄ À§ ¼±¾ðÀº ´ÙÀ½À¸·Î ºÐ¼®µË´Ï´Ù.

  EXEC SQL BEGIN DECLARE SECTION;
  char a[4];
  char b[12];
        struct
  {
          short length;
    char  data[18];
  } m;
  SQL TYPE IS BLOB(4) x;
  SQL TYPE IS CLOB(15) y;
  SQL TYPE IS DBCLOB(6144) z;
  EXEC SQL END DECLARE SECTION;

C ¹× C++ÀÇ È£½ºÆ® ±¸Á¶ Áö¿ø

È£½ºÆ® ±¸Á¶ Áö¿øÀ» ÅëÇØ C/C++ »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ È£½ºÆ® º¯¼ö¸¦ ´ÜÀÏ È£½ºÆ® ±¸Á¶·Î ±×·ìÈ­ÇÒ ¼ö ÀÖ½À´Ï´Ù. µû¶ó¼­ SQL¹®ÀÇ µ¿ÀÏ È£½ºÆ® º¯¼ö ÁýÇÕÀ» ºü¸£°Ô ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½ È£½ºÆ® ±¸Á¶¸¦ »ç¿ëÇÏ¿© SAMPLE µ¥ÀÌÅͺ£À̽ºÀÇ STAFF Å×ÀÌºí¿¡ ÀÖ´Â ÀϺΠÄ÷³¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

   struct tag
      {
        short id;
        struct
        {
          short length;
          char  data[10];
        } name;
        struct
        {
          short   years;
          double salary;
        } info;
      } staff_record;

È£½ºÆ® ±¸Á¶ÀÇ Çʵå´Â À¯È¿ÇÑ ÀÓÀÇÀÇ È£½ºÆ® º¯¼ö À¯ÇüÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. ¿©±â¿¡´Â ¸ðµç ¼ýÀÚ, ¹®ÀÚ ¹× ´ëÇü ¿ÀºêÁ§Æ®(LOB) À¯ÇüÀÌ Æ÷ÇԵ˴ϴÙ. ÁßøµÈ È£½ºÆ® ±¸Á¶µµ 25 ·¹º§±îÁö Áö¿øµË´Ï´Ù. À§ÀÇ ¿¹¿¡¼­ info Çʵå´Â ÇÏÀ§ ±¸Á¶ÀÌÁö¸¸ name Çʵå´Â VARCHAR Çʵ带 Ç¥½ÃÇϹǷΠÇÏÀ§ ±¸Á¶°¡ ¾Æ´Õ´Ï´Ù. °°Àº ¿øÄ¢ÀÌ LONG VARCHAR, VARGRAPHIC ¹× LONG VARGRAPHIC¿¡ Àû¿ëµË´Ï´Ù. È£½ºÆ® ±¸Á¶ÀÇ Æ÷ÀÎÅ͵µ Áö¿øµË´Ï´Ù.

SQL¹®ÀÇ È£½ºÆ® ±¸Á¶¿¡¼­ ±×·ìÈ­µÈ È£½ºÆ® º¯¼ö¸¦ ÂüÁ¶ÇÏ´Â ¹æ¹ý¿¡´Â µÎ °¡Áö°¡ ÀÖ½À´Ï´Ù.

  1. È£½ºÆ® ±¸Á¶ À̸§Àº SQL¹®¿¡¼­ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.
       EXEC SQL SELECT id, name, years, salary
            INTO :staff_record
                 FROM staff
                 WHERE id = 10;
    

    »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ staff_record¿¡ ´ëÇÑ ÂüÁ¶¸¦ È£½ºÆ® ±¸Á¶¿¡¼­ ¼±¾ðµÈ ¸ðµç ÇʵåÀÇ ¸ñ·ÏÀ¸·Î º¯È¯ÇÕ´Ï´Ù. À̶§ ¸ñ·ÏÀº ½°Ç¥·Î ºÐ¸®µË´Ï´Ù. °¢ Çʵå´Â ¸ðµç ·¹º§ÀÇ È£½ºÆ® ±¸Á¶ À̸§À¸·Î ±ÔÁ¤µÇ¹Ç·Î ´Ù¸¥ È£½ºÆ® º¯¼ö³ª Çʵå¿ÍÀÇ ¸í¸í Ãæµ¹À» ¹æÁöÇÕ´Ï´Ù. ÀÌ´Â ´ÙÀ½ ¹æ¹ý°ú ÀÏÄ¡ÇÕ´Ï´Ù.

  2. SQL¹®¿¡¼­ ¿ÏÀüÇÑ È£½ºÆ® º¯¼ö À̸§À» ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù.
       EXEC SQL SELECT id, name, years, salary
            INTO :staff_record.id, :staff_record.name,
                 :staff_record.info.years, :staff_record.info.salary
                 FROM staff
                 WHERE id = 10;
    

    °°Àº À̸§À» °¡Áø ´Ù¸¥ È£½ºÆ® º¯¼ö°¡ ¾ø´Â °æ¿ì¿¡µµ Çʵå À̸§¿¡ ´ëÇÑ ÂüÁ¶´Â ¿ÏÀüÇØ¾ß ÇÕ´Ï´Ù. ±ÔÁ¤µÈ ÇÏÀ§ ±¸Á¶µµ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù. À§ÀÇ ¿¹¿¡¼­ :staff_record.info¸¦ »ç¿ëÇÏ¿© :staff_record.info.years, :staff_record.info.salary¸¦ ´ëüÇÒ ¼ö ÀÖ½À´Ï´Ù.

ù¹øÂ° ¿¹ÀÇ È£½ºÆ® ±¸Á¶¿¡ ´ëÇÑ ÂüÁ¶°¡ ½°Ç¥·Î ºÐ¸®µÇ´Â ÇʵåÀÇ ¸ñ·Ï¿¡ ÇØ´çÇϹǷΠÀÌ·± À¯ÇüÀÇ ÂüÁ¶°¡ ¿À·ù¸¦ ÀÏÀ¸Å³ ¼ö ÀÖ´Â ÀνºÅϽº°¡ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ´ÙÀ½°ú °°½À´Ï´Ù.

   EXEC SQL DELETE FROM :staff_record;

¿©±â¼­ DELETE¹®Àº ´ÜÀÏ ¹®ÀÚ ±â¹Ý È£½ºÆ® º¯¼ö¸¦ ±â´ëÇÕ´Ï´Ù. È£½ºÆ® ±¸Á¶¸¦ Á¦°øÇÏ¸é ¸í·É¹®¿¡¼­ »çÀü ó¸® ÄÄÆÄÀÏ ½Ã°£ ¿À·ù°¡ ¹ß»ýÇÕ´Ï´Ù.

   SQL0087N  "staff_record" È£½ºÆ® º¯¼ö´Â ±¸Á¶ ÂüÁ¶°¡ Çã¿ëµÇÁö ¾ÊÀ» ¶§
   »ç¿ëµÇ´Â ±¸Á¶ÀÔ´Ï´Ù.

PREPARE, EXECUTE IMMEDIATE, CALL, Ç¥½Ã±â º¯¼ö ¹× SQLDA ÂüÁ¶ µî ´Ù¸¥ È£½ºÆ® ±¸Á¶¸¦ »ç¿ëÇϸé SQL0087N ¿À·ù°¡ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. µÎ ¹øÂ° ¿¹¿¡¼­ °³º° Çʵ带 Á¤È®È÷ ÂüÁ¶ÇÒ ¶§¿Í °°Àº »óȲ¿¡¼­´Â ÇÑ Çʵ常À» Æ÷ÇÔÇÑ È£½ºÆ® ±¸Á¶°¡ Çã¿ëµË´Ï´Ù.

C ¹× C++ÀÇ Ç¥½Ã±â Å×À̺í

Ç¥½Ã±â Å×À̺íÀº È£½ºÆ® ±¸Á¶¿¡ »ç¿ëÇÒ Ç¥½Ã±â º¯¼öÀÇ ÄÝ·º¼ÇÀÔ´Ï´Ù. ÀÌ º¯¼ö ÁýÇÕÀº ªÀº Á¤¼ö ¹è¿­·Î ¼±¾ðÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.

   short ind_tab[10];

À§ÀÇ ¿¹´Â 10°³ÀÇ ±¸¼º¿ä¼Ò°¡ Àִ ǥ½Ã±â Å×À̺íÀ» ¼±¾ðÇÕ´Ï´Ù. ´ÙÀ½Àº SQL¹®¿¡¼­ ÀÌ Å×À̺íÀ» »ç¿ëÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» ³ªÅ¸³À´Ï´Ù.

   EXEC SQL SELECT id, name, years, salary
        INTO :staff_record INDICATOR :ind_tab
             FROM staff
             WHERE id = 10;

´ÙÀ½¿¡¼­´Â Å×À̺íÀÇ ÇØ´ç Ç¥½Ã±â º¯¼ö¸¦ Æ÷ÇÔÇÑ °¢ È£½ºÆ® ±¸Á¶ Çʵ带 ³ª¿­ÇÕ´Ï´Ù.

staff_record.id
ind_tab[0]

staff_record.name
ind_tab[1]

staff_record.info.years
ind_tab[2]

staff_record.info.salary
ind_tab[3]
ÁÖ:SQL¹®¿¡¼­ ind_tab[1]°ú °°Àº Ç¥½Ã±â Å×ÀÌºí ±¸¼º¿ä¼Ò¸¦ °³º°ÀûÀ¸·Î ÂüÁ¶ÇÒ ¼ö ¾ø½À´Ï´Ù. INDICATOR Ű¿öµå´Â ¼±ÅÃÀûÀÔ´Ï´Ù. ±¸Á¶ Çʵå¿Í Ç¥½Ã±âÀÇ ¼ö°¡ ÀÏÄ¡ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. Ãß°¡ Ç¥½Ã±â´Â »ç¿ëµÇÁö ¾ÊÀ¸¸ç Ãß°¡ Çʵ忡¼­ Ç¥½Ã±â¸¦ ÇÒ´çÇÏÁö ¾Ê½À´Ï´Ù.

Ç¥½Ã±â º¯¼ö Å×ÀÌºí ´ë½Å ½ºÄ®¶ó Ç¥½Ã±â º¯¼ö¸¦ »ç¿ëÇÏ¿© È£½ºÆ® ±¸Á¶ÀÇ Ã¹¹øÂ° Çʵ忡 ´ëÇÑ Ç¥½Ã±â¸¦ Á¦°øÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ´Â ±¸¼º¿ä¼Ò°¡ Çϳª¸¸ Àִ ǥ½Ã±â Å×À̺íÀ» Æ÷ÇÔÇÏ´Â °Í°ú °°½À´Ï´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°½À´Ï´Ù.

   short scalar_ind;
 
   EXEC SQL SELECT id, name, years, salary
             INTO :staff_record INDICATOR :scalar_ind
             FROM staff
             WHERE id = 10;

È£½ºÆ® ±¸Á¶ ´ë½Å È£½ºÆ® º¯¼ö¿Í ÇÔ²² Ç¥½Ã±â Å×À̺íÀ» ÁöÁ¤ÇÒ °æ¿ì ind_tab[0]°ú °°Àº Ç¥½Ã±â Å×À̺íÀÇ Ã¹¹øÂ° ±¸¼º¿ä¼Ò¸¸ »ç¿ëµÇÁö ¾Ê½À´Ï´Ù.

   EXEC SQL SELECT id
             INTO :staff_record.id INDICATOR :ind_tab
             FROM staff
             WHERE id = 10;

È£½ºÆ® ±¸Á¶¿¡¼­ ªÀº Á¤¼ö ¹è¿­À» ¼±¾ðÇÒ °æ¿ì

   struct tag
   {
     short i[2];
   } test_record;

:test_record¸¦ :test_record.i[0], :test_record.i[1]°ú µ¿ÀÏÇÏ°Ô ¼³Á¤Çϸ鼭 SQL¹®¿¡¼­ test_record¸¦ ÂüÁ¶ÇÏ¸é ¹è¿­ÀÌ ±× ±¸¼º¿ä¼Ò·Î È®ÀåµË´Ï´Ù.

C ¹× C++ÀÇ ³Î·Î Á¾·áµÈ ¹®ÀÚ¿­

C/C++ ³Î·Î Á¾·áµÇ´Â ¹®ÀÚ¿­Àº ÀÚü SQLTYPE(¹®ÀÚÀÇ °æ¿ì 460/461 ¹× ±×·¡ÇÈÀÇ °æ¿ì 468/469)¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

C/C++ ³Î·Î Á¾·áµÇ´Â ¹®ÀÚ¿­Àº LANGLEVEL »çÀü ó¸® ÄÄÆÄÀÏ·¯ ¿É¼ÇÀÇ °ª¿¡ µû¶ó ´Ù¸£°Ô Á¶ÀýµË´Ï´Ù. SQL¹®¿¡¼­ ÀÌ·± SQLTYPE ¹× ¼±¾ð ±æÀÌ n¿¡ ÇØ´çÇϴ ȣ½ºÆ® º¯¼ö Áß Çϳª¸¦ ÁöÁ¤Çϰí, µ¥ÀÌÅÍÀÇ ¹ÙÀÌÆ® ¼ö(¹®ÀÚ À¯ÇüÀÇ °æ¿ì) ¶Ç´Â 2 ¹ÙÀÌÆ® ¹®ÀÚ(±×·¡ÇÈ À¯ÇüÀÇ °æ¿ì)°¡ kÀÏ °æ¿ì:

´Ù¸¥ SQL ¹®¸Æ¿¡¼­ ÁöÁ¤ÇÒ °æ¿ì ±æÀ̰¡ nÀΠȣ½ºÆ® º¯¼ö SQLTYPE 460Àº À§¿¡¼­ Á¤ÀÇÇÑ n ±æÀÌÀÇ VARCHAR µ¥ÀÌÅÍ À¯ÇüÀ¸·Î 󸮵˴ϴÙ. ´Ù¸¥ SQL ¹®¸Æ¿¡¼­ ÁöÁ¤ÇÒ °æ¿ì ±æÀ̰¡ nÀΠȣ½ºÆ® º¯¼ö SQLTYPE 468Àº À§¿¡¼­ Á¤ÀÇÇÑ n ±æÀÌÀÇ VARGRAPHIC µ¥ÀÌÅÍ À¯ÇüÀ¸·Î 󸮵˴ϴÙ.

C ¹× C++ÀÇ Æ÷ÀÎÅÍ µ¥ÀÌÅÍ À¯Çü

´ÙÀ½ Á¦ÇÑ»çÇ× ¾Æ·¡¼­ ƯÁ¤ µ¥ÀÌÅÍ À¯ÇüÀÇ Æ÷ÀÎÅͷΠȣ½ºÆ® º¯¼ö¸¦ ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù.

C ¹× C++¿¡¼­ Ŭ·¡½º µ¥ÀÌÅÍ ±¸¼º¿øÀ» È£½ºÆ® º¯¼ö·Î »ç¿ë

Ŭ·¡½º³ª ¿ÀºêÁ§Æ® ÀÚü°¡ ¾Æ´Ñ È£½ºÆ® º¯¼ö·Î Ŭ·¡½º µ¥ÀÌÅÍ ±¸¼º¿øÀ» ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ ¿¹´Â »ç¿ëÇÒ ¸Þ¼Òµå¸¦ ³ªÅ¸³À´Ï´Ù.

    class STAFF
    {
        private:
  EXEC SQL BEGIN DECLARE SECTION;
               char        staff_name[20];
               short int   staff_id;
               double      staff_salary;
  EXEC SQL END DECLARE SECTION;
             short       staff_in_db;
        .
        .
    };

Ŭ·¡½º ±¸¼º¿ø ÇÔ¼ö¿¡¼­ C++ ÄÄÆÄÀÏ·¯°¡ Á¦°øÇÏ´Â ³»ÀçµÈ this Æ÷ÀÎÅ͸¦ ÅëÇØ¼­¸¸ SQL¹®¿¡¼­ µ¥ÀÌÅÍ ±¸¼º¿ø¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù. SQL¹®¿¡¼­ SELECT name INTO :my_obj.staff_name ...°ú °°Àº ¿ÀºêÁ§Æ® ÀνºÅϽº¸¦ ¸í½ÃÀûÀ¸·Î ±ÔÁ¤ÇÒ ¼ö ¾ø½À´Ï´Ù.

SQL¹®¿¡¼­ Ŭ·¡½º µ¥ÀÌÅÍ ±¸¼º¿øÀ» Á÷Á¢ ÂüÁ¶ÇÒ °æ¿ì µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼­ this Æ÷ÀÎÅ͸¦ »ç¿ëÇÏ¿© ÂüÁ¶¸¦ ºÐ¼®ÇÕ´Ï´Ù. ÀÌ ¶§¹®¿¡ ÃÖÀûÈ­ ·¹º§ »çÀü ó¸® ÄÄÆÄÀÏ ¿É¼Ç(OPTLEVEL)À» ±âº» ¼³Á¤°ª 0(ÃÖÀûÈ­ ¾ÈÇÔ)À¸·Î µÎ¾î¾ß ÇÕ´Ï´Ù. Áï, µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼­ ¾î¶² SQLDA ÃÖÀûÈ­µµ ½ÇÇàÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ´Â SQL¹®¿¡ Æ÷ÀÎÅÍ È£½ºÆ® º¯¼ö°¡ Æ÷Ç﵃ ¶§¸¶´Ù Àû¿ëµË´Ï´Ù.

´ÙÀ½ ¿¹´Â SQL¹®¿¡¼­ È£½ºÆ® º¯¼ö·Î ¼±¾ðÇÑ Å¬·¡½º µ¥ÀÌÅÍ ±¸¼º¿øÀ» Á÷Á¢ »ç¿ëÇÏ´Â ¹æ¹ýÀ» ³ªÅ¸³À´Ï´Ù.

    class STAFF
    {
        
·
·
·
public:
·
·
·
short int hire( void ) { EXEC SQL INSERT INTO staff ( name,id,salary ) VALUES ( :staff_name, :staff_id, :staff_salary ); staff_in_db = (sqlca.sqlcode == 0); return sqlca.sqlcode; } };

ÀÌ ¿¹¿¡¼­´Â Ŭ·¡½º µ¥ÀÌÅÍ ±¸¼º¿ø staff_name, staff_id ¹× staff_salaryÀ» INSERT¹®¿¡¼­ Á÷Á¢ »ç¿ëÇÕ´Ï´Ù. ÀÌ·± ±¸¼º¿øÀº È£½ºÆ® º¯¼ö·Î ¼±¾ðµÇ¹Ç·Î(È£½ºÆ® º¯¼ö·Î Ŭ·¡½º µ¥ÀÌÅÍ ±¸¼º¿ø ¼±¾ð ¿¹ÀÇ ¿¹ ÂüÁ¶), this Æ÷ÀÎÅ͸¦ ÅëÇØ ÇöÀç ¿ÀºêÁ§Æ®¿¡ ³»ÀçÀûÀ¸·Î ±ÔÁ¤µË´Ï´Ù. SQL¹®¿¡¼­ this Æ÷ÀÎÅ͸¦ ÅëÇØ ¾×¼¼½ºÇÒ ¼ö ¾ø´Â µ¥ÀÌÅÍ ±¸¼º¿øÀ» ÂüÁ¶ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. Æ÷ÀÎÅÍ ¶Ç´Â ÂüÁ¶ È£½ºÆ® º¯¼ö¸¦ »ç¿ëÇÏ¿© °£Á¢ÀûÀ¸·Î ÂüÁ¶Çؼ­ ±×·¸°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù.

´ÙÀ½ ¿¹´Â µÎ ¹øÂ° ¿ÀºêÁ§Æ® otherGuy¸¦ ÃëÇÏ´Â »õ·Î¿î ¸Þ¼Òµå asWellPaidAs¸¦ ³ªÅ¸³À´Ï´Ù. SQL¹®¿¡¼­ ±× ±¸¼º¿øÀ» Á÷Á¢ÀûÀ¸·Î ÂüÁ¶ÇÒ ¼ö ¾øÀ¸¹Ç·Î, ÀÌ ¸Þ¼Òµå´Â Áö¿ª Æ÷ÀÎÅͳª ÂüÁ¶ È£½ºÆ® º¯¼ö¸¦ ÅëÇØ ±× ±¸¼º¿øÀ» °£Á¢ÀûÀ¸·Î ÂüÁ¶ÇÕ´Ï´Ù.

     short int STAFF::asWellPaidAs( STAFF otherGuy )
     {
  EXEC SQL BEGIN DECLARE SECTION;
           short &otherID = otherGuy.staff_id
           double otherSalary;
  EXEC SQL END DECLARE SECTION;
         EXEC SQL SELECT SALARY INTO :otherSalary
           FROM STAFF WHERE id = :otherID;
           if( sqlca.sqlcode == 0 )
              return staff_salary >= otherSalary;
           else
              return 0;
     }

C ¹× C++¿¡¼­ ±¸¼º ¹× ±¸¼º¿ø ¿¬»êÀÚ »ç¿ë

Embedded SQL¹®¿¡¼­ C/C++ ±¸¼º¿ø ¿¬»êÀÚ '.' ¶Ç´Â '->'³ª C++ ¹üÀ§ ºÐ¼® ¿¬»êÀÚ '::'¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. SQL¹® ¿ÜºÎ¿¡¼­ ¿øÇÏ´Â ¹üÀ§ º¯¼ö¸¦ Áö½ÃÇϵµ·Ï ¼³Á¤ÇÑ ´ÙÀ½ SQL¹® ¾È¿¡¼­ À̸¦ Áö½ÃÇÏ´Â µ¥ »ç¿ëÇÏ´Â Áö¿ª Æ÷ÀÎÅͳª ÂüÁ¶ º¯¼ö¸¦ ÅëÇØ °°Àº ÀÛ¾÷À» ½±°Ô ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½ ¿¹´Â »ç¿ëÇÒ ¿Ã¹Ù¸¥ ¸Þ¼Òµå¸¦ ³ªÅ¸³À´Ï´Ù.

  EXEC SQL BEGIN DECLARE SECTION;
       char (& localName)[20] = ::name;
  EXEC SQL END DECLARE SECTION;
     EXEC SQL
       SELECT name INTO :localName FROM STAFF
       WHERE name = 'Sanders';

C ¹× C++¿¡¼­ÀÇ ±×·¡ÇÈ È£½ºÆ® º¯¼ö ó¸®

C ¶Ç´Â C++ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ ±×·¡ÇÈ µ¥ÀÌÅ͸¦ Á¶ÀýÇÏ·Á¸é DB2¿¡¼­ Á¦°øÇÏ´Â sqldbchar µ¥ÀÌÅÍ À¯ÇüÀ̳ª wchar_t C/C++ µ¥ÀÌÅÍ À¯Çü¿¡ µû¶ó È£½ºÆ® º¯¼ö¸¦ »ç¿ëÇϽʽÿÀ. ÀÌ·± È£½ºÆ® º¯¼öÀÇ À¯ÇüÀ» GRAPHIC, VARGRAPHIC ¶Ç´Â DBCLOBÀÎ Å×À̺í Ä÷³¿¡ ÇÒ´çÇÒ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Å×À̺íÀÇ GRAPHIC ¶Ç´Â VARGRAPHIC Ä÷³¿¡¼­ DBCS µ¥ÀÌÅ͸¦ °»½ÅÇϰųª ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.

±×·¡ÇÈ È£½ºÆ® º¯¼öÀÇ À¯È¿ÇÑ ¾ç½ÄÀº ´ÙÀ½°ú °°ÀÌ ¼¼ °¡ÁöÀÔ´Ï´Ù.

C ¹× C++ÀÇ ´ÙÁß ¹ÙÀÌÆ® ¹®ÀÚ ÀÎÄÚµù

ÀϺΠ¹®ÀÚ ¿£ÄÚµù ½ºÅ°¸¶, ƯÈ÷ ¼­¾Æ½Ã¾Æ ±¹°¡ÀÇ ¹®ÀÚ ¿£ÄÚµù ½ºÅ°¸¶ÀÇ °æ¿ì ¹®ÀÚ¸¦ Ç¥½ÃÇϴµ¥ º¹¼ö ¹ÙÀÌÆ®°¡ ÇÊ¿äÇÕ´Ï´Ù. µ¥ÀÌÅÍ¿¡ ´ëÇÑ ¿ÜºÎ Ç¥½Ã¸¦ ¹®ÀÚ¿¡ ´ëÇÑ º¹¼ö ¹ÙÀÌÆ® ¹®ÀÚ ÄÚµå Ç¥½Ã¶ó ÇÏ¸ç ¿©±â¿¡´Â 2 ¹ÙÀÌÆ® ¹®ÀÚ(2 ¹ÙÀÌÆ®·Î Ç¥½ÃµÇ´Â ¹®ÀÚ)°¡ Æ÷ÇԵ˴ϴÙ. DB2ÀÇ ±×·¡ÇÈ µ¥ÀÌÅÍ´Â 2 ¹ÙÀÌÆ® ¹®ÀÚ·Î ±¸¼ºµË´Ï´Ù.

2 ¹ÙÀÌÆ® ¹®ÀÚ·Î ¹®ÀÚ¿­À» Á¶ÀÛÇÏ·Á¸é ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ µ¥ÀÌÅÍ¿¡ ´ëÇÑ ³»ºÎ Ç¥½Ã¸¦ »ç¿ëÇÏ´Â °ÍÀÌ Æí¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ³»ºÎ Ç¥½Ã¸¦ 2 ¹ÙÀÌÆ® ¹®ÀÚ¿¡ ´ëÇÑ ¿ÍÀÌµå ¹®ÀÚ ÄÚµå¶ó Çϸç ÀÌ Ç¥½Ã´Â wchar_t C/C++ µ¥ÀÌÅÍ À¯Çü¿¡ °ü½ÀÀûÀ¸·Î »ç¿ëµÇ´Â Çü½ÄÀÔ´Ï´Ù. ANSI C ¹× X/OPEN Portability Guide 4(XPG4)¸¦ µû¸£´Â ¼­ºê·çƾÀ» »ç¿ëÇÏ¿© ¿ÍÀÌµå ¹®ÀÚ µ¥ÀÌÅ͸¦ ó¸®ÇÏ°í ¿ÍÀÌµå ¹®ÀÚ Çü½ÄÀÇ µ¥ÀÌÅÍ¿Í º¹¼ö ¹ÙÀÌÆ® Çü½Ä »çÀÌ¿¡¼­ º¯È¯ÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ º¹¼ö ¹ÙÀÌÆ® Çü½ÄÀ̳ª ¿ÍÀÌµå ¹®ÀÚ Çü½ÄÀ¸·Î ¹®ÀÚ¸¦ ó¸®ÇÒ ¼ö ÀÖÁö¸¸ DBCS(º¹¼ö ¹ÙÀÌÆ®) ¹®ÀÚ Äڵ常À¸·Î µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥°úÀÇ »óÈ£ÀÛ¿ëÀÌ ½ÇÇàµÈ´Ù´Â Á¡¿¡ ÁÖÀÇÇϽʽÿÀ. Áï, µ¥ÀÌÅÍ´Â GRAPHIC Ä÷³¿¡ DBCS Çü½ÄÀ¸·Î ÀúÀåµÇ¸ç ¿©±â¼­ °Ë»öµË´Ï´Ù. WCHARTYPE »çÀü ó¸® ÄÄÆÄÀÏ·¯ ¿É¼ÇÀº, µ¥ÀÌÅͺ£À̽º ¿£Áø°ú ±³È¯ÇÒ ¶§ ¿ÍÀÌµå ¹®ÀÚ Çü½ÄÀÇ ÀÀ¿ëÇÁ·Î±×·¥ µ¥ÀÌÅ͸¦ º¹¼ö ¹ÙÀÌÆ® Çü½ÄÀ¸·Î ¶Ç´Â ±× ¹Ý´ë·Î º¯È¯ÇÒ ¼ö ÀÖµµ·Ï Á¦°øµË´Ï´Ù.

C ¹× C++¿¡¼­ wchar_t ¶Ç´Â sqldbchar µ¥ÀÌÅÍ À¯Çü ¼±ÅÃ

ƯÁ¤ ÄÚµå ÆäÀÌÁö¿¡ ´ëÇØ DB2 ±×·¡ÇÈ µ¥ÀÌÅÍÀÇ Å©±â¿Í ¿£ÄÚµùÀÌ Ç÷§Æû »çÀÌ¿¡¼­ ÀÏÁ¤ÇÏÁö¸¸ ANSI C ¶Ç´Â C++ wchar_t µ¥ÀÌÅÍ À¯ÇüÀÇ Å©±â¿Í ³»ºÎ Çü½ÄÀº »ç¿ëÇÏ´Â ÄÄÆÄÀÏ·¯¿Í »ç¿ëÀÚ°¡ ÀÖ´Â Ç÷§Æû¿¡ µû¶ó ´Þ¶óÁý´Ï´Ù. ±×·¯³ª DB2¿¡¼­ sqldbchar µ¥ÀÌÅÍ À¯ÇüÀ» 2 ¹ÙÀÌÆ® Å©±â·Î Á¤ÀÇÇϸç, ÀÌ´Â µ¥ÀÌÅͺ£À̽º¿¡ Á¤ÀÇµÈ °Í°ú °°Àº Çü½ÄÀ¸·Î DBCS ¹× UCS-2 µ¥ÀÌÅ͸¦ Á¶ÀÛÇÏ´Â ÀÏÁ¾ÀÇ ÀÌ½Ä ¹æ½ÄÀÔ´Ï´Ù. UCS-2 µ¥ÀÌÅÍ¿¡ ´ëÇØ¼­´Â ÀϺ»¾î ¹× ´ë¸¸¾î EUC ¹× UCS-2 ÄÚµå ¼¼Æ® º¯È¯°ú °ü¸® ¾È³»¼­¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

wchar_t ¶Ç´Â sqldbcharÀ» »ç¿ëÇÏ¿© ¸ðµç DB2 C ±×·¡ÇÈ È£½ºÆ® º¯¼ö À¯ÇüÀ» Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. C ¹× C++ÀÇ WCHARTYPE »çÀü ó¸® ÄÄÆÄÀÏ·¯ ¿É¼Ç¿¡¼­ ¼³¸íÇÑ ´ë·Î WCHARTYPE CONVERT »çÀü ó¸® ÄÄÆÄÀÏ ¿É¼ÇÀ» »ç¿ëÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥À» ºôµåÇÒ °æ¿ì wchar_t¸¦ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
ÁÖ:Windows Ç÷§Æû¿¡¼­ WCHARTYPE CONVERT ¿É¼ÇÀ» ÁöÁ¤ÇÒ °æ¿ì Windows Ç÷§ÆûÀÇ wchar_t°¡ À¯´ÏÄÚµå¶ó´Â Á¡¿¡ ÁÖÀÇÇØ¾ß ÇÕ´Ï´Ù. µû¶ó¼­ C/C++ ÄÄÆÄÀÏ·¯ÀÇ wchar_t°¡ À¯´ÏÄڵ尡 ¾Æ´Ò °æ¿ì wcstombs() À¯´ÏÄÚµå ÇÔ¼ö È£ÃâÀÌ SQLCODE -1421 (SQLSTATE=22504)·Î ½ÇÆÐÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì WCHARTYPE NOCONVERT ¿É¼ÇÀ» ÁöÁ¤Çϰí, ÇÁ·Î±×·¥¿¡¼­ wcstombs() ¹× mbstowcs() ÇÔ¼ö¸¦ ¸í½ÃÀûÀ¸·Î È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù.

WCHARTYPE NOCONVERT »çÀü ó¸® ÄÄÆÄÀÏ ¿É¼ÇÀ¸·Î ÀÀ¿ëÇÁ·Î±×·¥À» ºôµåÇÒ °æ¿ì ¼­·Î ´Ù¸¥ DB2 Ŭ¶óÀÌ¾ðÆ®¿Í ¼­¹ö Ç÷§Æû°£ÀÇ ÃÖ´ë À̽ļºÀ» À§ÇØ sqldbcharÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. WCHARTYPE NOCONVERT¿¡ wchar_t¸¦ »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ wchar_t¸¦ 2 ¹ÙÀÌÆ® ±æÀÌ·Î Á¤ÀÇÇÑ Ç÷§Æû¿¡¼­¸¸ °¡´ÉÇÕ´Ï´Ù.

È£½ºÆ® º¯¼ö ¼±¾ð¿¡¼­ wchar_t³ª sqldbcharÀ» Ʋ¸®°Ô »ç¿ëÇÒ °æ¿ì »çÀü ó¸® ÄÄÆÄÀϽà SQLCODE 15 (no SQLSTATE)¸¦ ¼ö½ÅÇÏ°Ô µË´Ï´Ù.

C ¹× C++ÀÇ WCHARTYPE »çÀü ó¸® ÄÄÆÄÀÏ·¯ ¿É¼Ç

WCHARTYPE »çÀü ó¸® ÄÄÆÄÀÏ·¯ ¿É¼ÇÀ» »ç¿ëÇÏ¿©, C/C++ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ »ç¿ëÇÏ·Á´Â ±×·¡ÇÈ ¹®ÀÚ¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿É¼ÇÀ» »ç¿ëÇÏ¸é ±×·¡ÇÈ µ¥ÀÌÅ͸¦ º¹¼ö ¹ÙÀÌÆ® Çü½ÄÀ¸·Î À¯ÁöÇÒÁö ¾Æ´Ï¸é ¿ÍÀÌµå ¹®ÀÚ Çü½ÄÀ¸·Î À¯ÁöÇÒÁö À¶Å뼺ÀÖ°Ô ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. WCHARTYPE ¿É¼ÇÀÇ °¡´ÉÇÑ °ªÀº ´ÙÀ½°ú °°ÀÌ µÎ °¡ÁöÀÔ´Ï´Ù.

CONVERT
WCHARTYPE CONVERT ¿É¼ÇÀ» ¼±ÅÃÇÏ¸é ±×·¡ÇÈ È£½ºÆ® º¯¼ö¿Í µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ »çÀÌ¿¡¼­ ¹®ÀÚ Äڵ尡 º¯È¯µË´Ï´Ù. ±×·¡ÇÈ ÀԷ ȣ½ºÆ® º¯¼öÀÇ °æ¿ì ANSI C ÇÔ¼ö wcstombs()¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅ͸¦ µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥À¸·Î Àü¼ÛÇϱâ Àü¿¡ ¿ÍÀÌµå ¹®ÀÚ Çü½Ä¿¡¼­ º¹¼ö ¹ÙÀÌÆ® DBCS ¹®ÀÚ Çü½ÄÀ¸·ÎÀÇ ¹®ÀÚ ÄÚµå º¯È¯ÀÌ ¼öÇàµË´Ï´Ù. ±×·¡ÇÈ Ãâ·Â È£½ºÆ® º¯¼öÀÇ °æ¿ì ANSI C ÇÔ¼ö mbstowcs()¸¦ »ç¿ëÇÏ¿© È£½ºÆ® º¯¼ö¿¡ ÀúÀåµÈ µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼­ µ¥ÀÌÅ͸¦ ¼ö½ÅÇϱâ Àü¿¡ º¹¼ö ¹ÙÀÌÆ® DBCS ¹®ÀÚ Çü½Ä¿¡¼­ ¿ÍÀÌµå ¹®ÀÚ Çü½ÄÀ¸·ÎÀÇ ¹®ÀÚ ÄÚµå º¯È¯ÀÌ ¼öÇàµË´Ï´Ù.

WCHARTYPE CONVERT¸¦ »ç¿ëÇÒ °æ¿ìÀÇ ÀÌÁ¡Àº, µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥°ú Åë½ÅÇϱâ Àü¿¡ ¸í½ÃÀûÀ¸·Î µ¥ÀÌÅ͸¦ º¹¼ö ¹ÙÀÌÆ® Çü½ÄÀ¸·Î º¯È¯ÇÏÁö ¾Ê°íµµ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ L-¸®ÅÍ·²À̳ª 'wc' ¹®ÀÚ¿­ ÇÔ¼ö¿Í °°Àº ¿ÍÀÌµå ¹®ÀÚ¿­ 󸮸¦ À§ÇØ ANSI C ¸ÞÄ«´ÏÁòÀ» ¿ÏÀüÇÏ°Ô È°¿ëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù. ´ÜÁ¡Àº, ³»ÀçµÈ º¯È¯ÀÌ ·±Å¸ÀÓ¿¡¼­ ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ¼º´É¿¡ ¿µÇâÀ» ÁÙ ¼ö ÀÖÀ¸º­ ¸Þ¸ð¸® ¿ä±¸»çÇ×À» Áõ°¡½Ãų ¼ö ÀÖ´Ù´Â °ÍÀÔ´Ï´Ù.

WCHARTYPE CONVERT¸¦ ¼±ÅÃÇÒ °æ¿ì sqldbchar ´ë½Å wchar_t¸¦ »ç¿ëÇÏ¿© ¸ðµç ±×·¡ÇÈ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇϽʽÿÀ.

WCHARTYPE CONVERT ¼öÇàÀ» ¿øÇÏÁö¸¸ CLI ÀÀ¿ëÇÁ·Î±×·¥°ú °°Àº »ç¿ëÀÚÀÇ ÀÀ¿ëÇÁ·Î±×·¥À» »çÀü ó¸® ÄÄÆÄÀÏÇÒ Çʿ䰡 ¾øÀ» °æ¿ì ÄÄÆÄÀÏ Å¸ÀÓ¿¡¼­ C ¼±Çà 󸮱⠸ÅÅ©·Î SQL_WCHART_CONVERT¸¦ Á¤ÀÇÇϽʽÿÀ. ±×·¸°Ô Çϸé DB2 Çì´õ ÆÄÀÏÀÇ Æ¯Á¤ Á¤ÀÇ¿¡¼­ sqldbchar ´ë½Å wchar_t µ¥ÀÌÅÍ À¯ÇüÀ» »ç¿ëÇÏ°Ô µË´Ï´Ù.
ÁÖ:DB2 Windows 3.1 Ŭ¶óÀÌ¾ðÆ®¿¡¼­ ¼öÇà ÁßÀÎ ÇÁ·Î±×·¥¿¡¼­´Â ÇöÀç WCHARTYPE CONVERT »çÀü ó¸® ÄÄÆÄÀÏ ¿É¼ÇÀ» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ·± ÇÁ·Î±×·¥ÀÇ °æ¿ì ±âº»°ª(WCHARTYPE NOCONVERT)À» »ç¿ëÇϽʽÿÀ.

NOCONVERT (±âº»°ª)
WCHARTYPE NOCONVERT ¿É¼ÇÀ» ¼±ÅÃÇϰųª WCHARTYPE ¿É¼ÇÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ» °æ¿ì ÀÀ¿ëÇÁ·Î±×·¥°ú µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ »çÀÌ¿¡ ³»ÀçÀû ¹®ÀÚ ÄÚµå º¯È¯Àº ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù. ±×·¡ÇÈ È£½ºÆ® º¯¼öÀÇ µ¥ÀÌÅÍ´Â º¯°æµÇÁö ¾ÊÀº DBCS ¹®ÀÚ·Î µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥·Î Àü¼ÛµÇ°Å³ª ¹Ý´ë·Î ¼ö½ÅµË´Ï´Ù. ÀÌ °æ¿ì ¼º´ÉÀÌ Çâ»óµÈ´Ù´Â ÀÌÁ¡ÀÌ ÀÖÁö¸¸ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ wchar_t È£½ºÆ® º¯¼ö¿¡ ¿ÍÀÌµå ¹®ÀÚ µ¥ÀÌÅ͸¦ »ç¿ëÇÏÁö ¾Ê°Å³ª µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥°ú »óÈ£ÀÛ¿ëÇÒ ¶§ ¸í½ÃÀûÀ¸·Î wcstombs() ¹× mbstowcs() ÇÔ¼ö¸¦ È£ÃâÇÏ¿© µ¥ÀÌÅÍ¿Í º¹¼ö ¹ÙÀÌÆ® Çü½Ä »çÀÌ¿¡¼­ º¯È¯ÇØ¾ß ÇÑ´Ù´Â ´ÜÁ¡ÀÌ ÀÖ½À´Ï´Ù.

WCHARTYPE NOCONVERT¸¦ ¼±ÅÃÇÒ °æ¿ì ´Ù¸¥ DB2 Ŭ¶óÀ̾ðÆ®/¼­¹ö Ç÷§Æû°úÀÇ À̽ļºÀ» ÃÖ´ëÈ­Çϱâ À§ÇØ sqldbchar À¯ÇüÀ» »ç¿ëÇÏ¿© ¸ðµç ±×·¡ÇÈ È£½ºÆ® º¯¼ö¸¦ ¼±¾ðÇϽʽÿÀ.

Command Reference¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.

´ÙÀ½Àº »ç¿ëÀÚ°¡ µû¶ó¾ß ÇÒ ±âŸ ÁöħÀÔ´Ï´Ù.

ÁÖ:

  1. WCHARTYPE CONVERT ¿É¼ÇÀ» »ç¿ëÇÏ¿© C ÀÀ¿ëÇÁ·Î±×·¥À» »çÀü ó¸® ÄÄÆÄÀÏÇÒ °æ¿ì DB2¿¡¼­ º¯È¯ ÇÔ¼ö¸¦ ÅëÇØ µ¥ÀÌÅ͸¦ Àü´ÞÇÏ´Â ÀÔ·Â ¹× Ãâ·Â½Ã ÀÀ¿ëÇÁ·Î±×·¥ÀÇ ±×·¡ÇÈ µ¥ÀÌÅͰ¡ À¯È¿ÇÑ Áö È®ÀÎÇÕ´Ï´Ù. CONVERT ¿É¼ÇÀ» »ç¿ëÇÏÁö ¾ÊÀ» °æ¿ì ±×·¡ÇÈ µ¥ÀÌÅÍÀÇ º¯È¯ÀÌ ¹ß»ýÇÏÁö ¾ÊÀ¸¹Ç·Î À¯È¿¼º °ËÁõÀº ¹ß»ýÇÏÁö ¾Ê½À´Ï´Ù. È¥ÇÕ CONVERT/NOCONVERT ȯ°æ¿¡¼­, NOCONVERT ÀÀ¿ëÇÁ·Î±×·¥ÀÌ À¯È¿ÇÏÁö ¾ÊÀº ±×·¡ÇÈ µ¥ÀÌÅ͸¦ »ðÀÔÇÑ ´ÙÀ½ CONVERT ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ºÐ¸®ÇÒ °æ¿ì¿¡´Â ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ µ¥ÀÌÅÍ´Â CONVERT ÀÀ¿ëÇÁ·Î±×·¥ÀÇ FETCH¿¡¼­ SQLCODE -1421(SQLSTATE 22504)¸¦ »ç¿ëÇÏ¿© º¯È¯ÇÏÁö ¸øÇÕ´Ï´Ù.

  2. DB2 Windows 3.1 Ŭ¶óÀÌ¾ðÆ®¿¡¼­ ¼öÇà ÁßÀÎ ÇÁ·Î±×·¥ÀÇ °æ¿ì ÇöÀç WCHARTYPE CONVERT »çÀü ó¸® ÄÄÆÄÀÏ ¿É¼ÇÀº Áö¿øµÇÁö ¾Ê½À´Ï´Ù. ÀÌ °æ¿ì, ±âº» WCHARTYPE NOCONVERT ¿É¼ÇÀ» »ç¿ëÇϽʽÿÀ.

C ¹× C++ÀÇ ÀϺ»¾î ¶Ç´Â ´ë¸¸¾î EUC ¹× UCS-2 °í·Á»çÇ×

ÀÀ¿ëÇÁ·Î±×·¥ ÄÚµå ÆäÀÌÁö°¡ ÀϺ¸¾ð ¶Ç´Â ´ë¸¸¾î EUCÀ̰ųª ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ UCS-2 µ¥ÀÌÅͺ£À̽º¿¡ ¿¬°áÇÒ °æ¿ì CONVERT ¶Ç´Â NOCONVERT ¿É¼Ç, wchar_t ¶Ç´Â sqldbchar ±×·¡ÇÈ È£½ºÆ® º¯¼ö ¶Ç´Â ÀÔ·Â/Ãâ·Â SQLDA¸¦ »ç¿ëÇÏ¿© µ¥ÀÌÅͺ£À̽º ¼­¹ö¿¡ ÀÖ´Â GRAPHIC Ä÷³¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ Àý¿¡¼­ DBCS Çü½ÄÀº EUC µ¥ÀÌÅÍ¿¡ ´ëÇÑ UCS-2 ¿£ÄÚµù ½ºÅ°¸¶¸¦ ÀǹÌÇÕ´Ï´Ù. ´ÙÀ½ °æ¿ì¸¦ °í·ÁÇϽʽÿÀ.

º¯È¯À» ÃÖ¼ÒÈ­Çϱâ À§ÇØ NOCONVERT ¿É¼ÇÀ» »ç¿ëÇϰí ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ º¯È¯À» Á¶ÀýÇϰųª GRAPHIC Ä÷³À» »ç¿ëÇÏÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. Windows NT ¶Ç´Â AIX ¹öÀü 4.3 ÀÌ»ó°ú °°ÀÌ wchar_t ¿£ÄÚµùÀÌ 2 ¹ÙÀÌÆ® À¯´ÏÄÚµåÀΠŬ¶óÀÌ¾ðÆ® È¯°æÀÇ °æ¿ì NOCONVERT ¿É¼ÇÀ» »ç¿ëÇÏ¿© UCS-2¿¡ ´ëÇØ Á÷Á¢ ÀÛ¾÷ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì »ç¿ëÀÚÀÇ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼­ Å« ³¡ Çü½Ä°ú ÀÛÀº ³¡ Çü½Ä »çÀÌÀÇ Â÷ÀÌÁ¡À» Á¶ÀýÇØ¾ß ÇÕ´Ï´Ù. NOCONVERT ¿É¼ÇÀ» »ç¿ëÇÒ °æ¿ì DB2 Universal Database¿¡¼­ Ç×»ó 2 ¹ÙÀÌÆ® Å« ³¡ Çü½ÄÀÎ sqldbcharÀ» »ç¿ëÇÕ´Ï´Ù.

NOCONVERT¸¦ ÁöÁ¤ÇÑ °æ¿ì UCS-2À¸·Î º¯È¯ ÈÄ ¶Ç´Â CONVERT¸¦ ÁöÁ¤ÇÑ °æ¿ì ¿ÍÀÌµå ¹®ÀÚ Çü½ÄÀ¸·Î º¯È¯ÇÏ¿© IBM-eucJP/IBM-eucTW CS0 (7 ºñÆ® ASCII) ¹× IBM-eucJP CS2 (Katakana) µ¥ÀÌÅ͸¦ ±×·¡ÇÈ È£½ºÆ® º¯¼ö¿¡ ÇÒ´çÇÏÁö ¸¶½Ê½Ã¿À. UCS-2¿¡¼­ PC DBCS·Î º¯È¯ÇÒ¶§ ÀÌ·± EUC ÄÚµå ¼¼Æ®¿¡ ÀÖ´Â ¹®ÀÚ°¡ 1 ¹ÙÀÌÆ®°¡ µÇ±â ¶§¹®ÀÔ´Ï´Ù.

ÀϹÝÀûÀ¸·Î eucJP ¹× eucTW¿¡¼­ GRAPHIC µ¥ÀÌÅ͸¦ UCS-2·Î ÀúÀåÇÏ´õ¶óµµ ÀÌ·± µ¥ÀÌÅͺ£À̽ºÀÇ GRAPHIC µ¥ÀÌÅÍ´Â ¿©ÀüÈ÷ ºñ-ASCII eucJP ¶Ç´Â eucTW µ¥ÀÌÅÍÀÔ´Ï´Ù. ƯÈ÷ ÀÌ·± GRAPHIC µ¥ÀÌÅÍ¿¡ ä¿öÁö´Â °ø¹éÀº DBCS °ø¹é(UCS-2, U+3000ÀÇ Ç¥ÀÇÀûÀÎ °ø¹éÀ̶ó°íµµ ÇÔ)ÀÔ´Ï´Ù. ±×·¯³ª UCS-2 µ¥ÀÌÅͺ£À̽ºÀÇ °æ¿ì GRAPHIC µ¥ÀÌÅÍ¿¡´Â ¸ðµç UCS-2 ¹®ÀÚ°¡ µé¾î°¥ ¼ö ÀÖÀ¸¸ç °ø¹é ä¿òÀº UCS-2 °ø¹é, U+0020À¸·Î ½ÇÇàµË´Ï´Ù. UCS-2 µ¥ÀÌÅͺ£À̽º¿¡¼­ UCS-2 µ¥ÀÌÅÍ ´ë eucJP ¹× eucTW µ¥ÀÌÅͺ£À̽º¿¡¼­ UCS-2 µ¥ÀÌÅ͸¦ °Ë»öÇϵµ·Ï ÀÀ¿ëÇÁ·Î±×·¥À» ÄÚµùÇÒ ¶§ ÀÌ Â÷ÀÌÁ¡À» ±â¾ïÇØ µÎ¾î¾ß ÇÕ´Ï´Ù.

ÀÏ¹Ý EUC ÀÀ¿ëÇÁ·Î±×·¥ °³¹ß Áöħ¿¡ ´ëÇØ¼­´Â ÀϺ»¾î ¹× ´ë¸¸¾î EUC ¹× UCS-2 ÄÚµå ¼¼Æ® º¯È¯¿¡¼­ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.


[ ÆäÀÌÁöÀÇ ¸Ç À§ | ÀÌÀü ÆäÀÌÁö | ´ÙÀ½ ÆäÀÌÁö | ¸ñÂ÷ | »öÀÎ ]