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


C ¹× C++ÀÇ Áö¿øµÇ´Â SQL µ¥ÀÌÅÍ À¯Çü

»çÀü Á¤ÀÇÇÑ Æ¯Á¤ C ¹× C++ µ¥ÀÌÅÍ À¯ÇüÀº µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ Ä÷³ À¯Çü¿¡ ÇØ´çÇÕ´Ï´Ù. ÀÌ·± C/C++ µ¥ÀÌÅÍ À¯Çü¸¸ È£½ºÆ® º¯¼ö·Î ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù.

Ç¥ 30´Â °¢ Ä÷³ À¯Çü¿¡ ÇØ´çÇÏ´Â C/C++ µ¥ÀÌÅÍ À¯ÇüÀ» ³ªÅ¸³À´Ï´Ù. »çÀü ó¸® ÄÄÆÄÀÏ·¯¿¡¼­ È£½ºÆ® º¯¼ö ¼±¾ðÀ» ãÀ¸¸é ÇØ´ç SQL À¯Çü °ªÀ» ÆÇº°ÇÕ´Ï´Ù. µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼­ ÀÌ °ªÀ» »ç¿ëÇÏ¿© ÀÀ¿ëÇÁ·Î±×·¥°ú ÀÚü¿¡¼­ ±³È¯µÇ´Â µ¥ÀÌÅ͸¦ º¯È¯ÇÕ´Ï´Ù.
ÁÖ:¸ðµç DB2 È£½ºÆ® ¾ð¾î¿¡¼­ DATALINK µ¥ÀÌÅÍ À¯Çü¿¡ ´ëÇÑ È£½ºÆ® º¯¼ö Áö¿øÀº ¾ø½À´Ï´Ù.

Ç¥ 30. C/C++ ¼±¾ð¿¡ ¸ÊÇεǴ SQL µ¥ÀÌÅÍ À¯Çü
SQL Ä÷³ À¯Çü(TNTA1) C/C++ µ¥ÀÌÅÍ À¯Çü SQL Ä÷³ À¯Çü ¼³¸í

SMALLINT
(500 ¶Ç´Â 501)


short
short int
sqlint16

ºÎÈ£ÀÖ´Â 16ºñÆ® Á¤¼ö

INTEGER
(496 ¶Ç´Â 497)


long
long int
sqlint32(TNTA1A)

ºÎÈ£ÀÖ´Â 32ºñÆ® Á¤¼ö

BIGINT
(492 ¶Ç´Â 493)


long long
long
__int64
sqlint64(TNTA1B)

ºÎÈ£ÀÖ´Â 64ºñÆ® Á¤¼ö

REAL(TNTA2)
(480 ¶Ç´Â 481)

float ´ÜÁ¤¹Ð ºÎµ¿ ¼Ò¼öÁ¡

DOUBLE(TNTA3)
(480 ¶Ç´Â 481)

double ¹èÁ¤¹Ð ºÎµ¿ ¼Ò¼öÁ¡

DECIMAL(p,s)
(484 ¶Ç´Â 485)

Á¤È®ÇÑ ÇØ´ç µ¥ÀÌÅÍ À¯Çü ¾øÀ½, double »ç¿ë ÆÑµÈ 10Áø¼ö

CHAR ¹× DECIMAL ÇÔ¼ö¸¦ »ç¿ëÇÏ¿© ¾ÐÃà ½ÊÁø¼ö Çʵ带 ¹®ÀÚ µ¥ÀÌÅÍ·Î Á¶ÀÛÇÒ °ÍÀ» °í·ÁÇϽʽÿÀ.


CHAR(1)
(452 ¶Ç´Â 453)

char ´ÜÀÏ ¹®ÀÚ

CHAR(n)
(452 ¶Ç´Â 453)

Á¤È®ÇÑ ÇØ´ç µ¥ÀÌÅÍ À¯Çü ¾øÀ½, char[n+1] »ç¿ë. ¿©±â¼­ nÀº µ¥ÀÌÅ͸¦ À¯ÁöÇÒ¸¸Å­ ÃæºÐÈ÷ Å®´Ï´Ù.


1<=n<=254

°íÁ¤ ±æÀÌ ¹®ÀÚ¿­

VARCHAR(n)
(448 ¶Ç´Â 449)


struct tag {
short int;
char[n]
}
 
1<=n<=32 672

2¹ÙÀÌÆ® ¹®ÀÚ¿­ ±æÀÌ Ç¥½Ã±â¸¦ Æ÷ÇÔÇÏ¸ç ³Î·Î Á¾·áµÇ´Â °¡º¯ ¹®ÀÚ¿­Àº ¾ø½À´Ï´Ù.
¶Ç´Â char[n+1] »ç¿ë. ¿©±â¼­ nÀº µ¥ÀÌÅ͸¦ À¯ÁöÇÒ ¸¸Å­ ÃæºÐÈ÷ Å®´Ï´Ù.


1<=n<=32 672

³Î·Î Á¾·áµÇ´Â º¯¼ö ±æÀÌ ¹®ÀÚ¿­

ÁÖ:ÇÒ´çµÈ 460/461ÀÇ SQL À¯Çü


LONG VARCHAR
(456 ¶Ç´Â 457)


struct tag {
short int;
char[n]
}
 
32 673<=n<=32 700

2¹ÙÀÌÆ® ¹®ÀÚ¿­ ±æÀÌ Ç¥½Ã±â¸¦ Æ÷ÇÔÇÏ¸ç ³Î·Î Á¾·áµÇ´Â °¡º¯ ¹®ÀÚ¿­Àº ¾ø½À´Ï´Ù.

CLOB(n)
(408 ¶Ç´Â 409)


sql type is
clob(n)
 
1<=n<=2 147 483 647

4 ¹ÙÀÌÆ® ¹®ÀÚ¿­ ±æÀÌ Ç¥½Ã±â¸¦ Æ÷ÇÔÇÏ¸ç ³Î·Î Á¾·áµÇ´Â °¡º¯ ¹®ÀÚ¿­Àº ¾ø½À´Ï´Ù.

CLOB À§Ä¡ ÁöÁ¤ÀÚ º¯¼ö(TNTA4)
(964 ¶Ç´Â 965)


sql type is
clob_locator

¼­¹öÀÇ CLOB ¿£ÅÍÆ¼¸¦ ½Äº°ÇÕ´Ï´Ù.

CLOB ÆÄÀÏ ÂüÁ¶ º¯¼ö(TNTA4)
(920 ¶Ç´Â 921)


sql type is
clob_file

CLOB µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ ÆÄÀÏÀÇ ¼³¸íÀÚ

BLOB(n)
(404 ¶Ç´Â 405)


sql type is
blob(n)
 
1<=n<=2 147 483 647

4 ¹ÙÀÌÆ® ¹®ÀÚ¿­ ±æÀÌ Ç¥½Ã±â¸¦ Æ÷ÇÔÇÏ¸ç ³Î·Î Á¾·áµÇ´Â °¡º¯ 2Áø ¹®ÀÚ¿­Àº ¾ø½À´Ï´Ù.

BLOB À§Ä¡ ÁöÁ¤ÀÚ º¯¼ö(TNTA4)
(960 ¶Ç´Â 961)


sql type is
blob_locator

¼­¹öÀÇ BLOB ¿£ÅÍÆ¼¸¦ ½Äº°ÇÕ´Ï´Ù.

BLOB ÆÄÀÏ ÂüÁ¶ º¯¼ö(TNTA4)
(916 ¶Ç´Â 917)


sql type is
blob_file

BLOB µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ ÆÄÀÏÀÇ ¼³¸íÀÚ

DATE
(384 ¶Ç´Â 385)

³Î·Î Á¾·áµÇ´Â ¹®ÀÚ ¾ç½Ä ³Î Á¾·á±â¸¦ ¼ö¿ëÇϵµ·Ï Àû¾îµµ 11 ¹®ÀÚ¸¦ Çã¿ëÇÕ´Ï´Ù.
VARCHAR ±¸Á¶ ¾ç½Ä Àû¾îµµ 10 ¹®ÀÚ¸¦ Çã¿ëÇÕ´Ï´Ù.

TIME
(388 ¶Ç´Â 389)

³Î·Î Á¾·áµÇ´Â ¹®ÀÚ ¾ç½Ä ³Î Á¾·á±â¸¦ ¼ö¿ëÇϵµ·Ï Àû¾îµµ 9 ¹®ÀÚ¸¦ Çã¿ëÇÕ´Ï´Ù.
VARCHAR ±¸Á¶ ¾ç½Ä Àû¾îµµ 8 ¹®ÀÚ¸¦ Çã¿ëÇÕ´Ï´Ù.

TIMESTAMP
(392 ¶Ç´Â 393)

³Î·Î Á¾·áµÇ´Â ¹®ÀÚ ¾ç½Ä ³Î Á¾·á±â¸¦ ¼ö¿ëÇϵµ·Ï Àû¾îµµ 27 ¹®ÀÚ¸¦ Çã¿ëÇÕ´Ï´Ù.
VARCHAR ±¸Á¶ ¾ç½Ä Àû¾îµµ 26 ¹®ÀÚ¸¦ Çã¿ëÇÕ´Ï´Ù.
ÁÖ:WCHARTYPE NOCONVERT ¿É¼ÇÀ¸·Î »çÀü ó¸® ÄÄÆÄÀÏÇÒ ¶§ DBCS ¶Ç´Â EUC ȯ°æ¿¡¼­¸¸ ´ÙÀ½ µ¥ÀÌÅÍ À¯ÇüÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

GRAPHIC(1)
(468 ¶Ç´Â 469)

sqldbchar ´ÜÀÏ 2 ¹ÙÀÌÆ® ¹®ÀÚ

GRAPHIC(n)
(468 ¶Ç´Â 469)

Á¤È®ÇÑ ÇØ´ç µ¥ÀÌÅÍ À¯Çü ¾øÀ½, sqldbchar[n+1] »ç¿ë. ¿©±â¼­ nÀº µ¥ÀÌÅ͸¦ À¯ÁöÇÒ¸¸Å­ ÃæºÐÈ÷ Å®´Ï´Ù.


1<=n<=127

°íÁ¤ ±æÀÌ 2 ¹ÙÀÌÆ® ¹®ÀÚ¿­

VARGRAPHIC(n)
(464 ¶Ç´Â 465)


struct tag {
short int;
sqldbchar[n]
}
 
1<=n<=16 336

2 ¹ÙÀÌÆ® ¹®ÀÚ¿­ ±æÀÌ Ç¥½Ã±â¸¦ Æ÷ÇÔÇÏ¸ç ³Î·Î Á¾·áµÇ´Â °¡º¯ 2 ¹ÙÀÌÆ® ¹®ÀÚ¿­Àº ¾ø½À´Ï´Ù.
¶Ç´Â sqldbchar[n+1] »ç¿ë. ¿©±â¼­ nÀº µ¥ÀÌÅ͸¦ À¯ÁöÇÒ¸¸Å­ ÃæºÐÈ÷ Å®´Ï´Ù.


1<=n<=16 336

³Î·Î Á¾·áµÇ´Â º¯¼ö ±æÀÌ 2 ¹ÙÀÌÆ® ¹®ÀÚ¿­

ÁÖ:ÇÒ´çµÈ 400/401ÀÇ SQL À¯Çü


LONG VARGRAPHIC
(472 ¶Ç´Â 473)


struct tag {
short int;
sqldbchar[n]
}
 
16 337<=n<=16 350

2 ¹ÙÀÌÆ® ¹®ÀÚ¿­ ±æÀÌ Ç¥½Ã±â¸¦ Æ÷ÇÔÇÏ¸ç ³Î·Î Á¾·áµÇ´Â °¡º¯ 2 ¹ÙÀÌÆ® ¹®ÀÚ¿­Àº ¾ø½À´Ï´Ù.
ÁÖ:WCHARTYPE CONVERT ¿É¼ÇÀ¸·Î »çÀü ó¸® ÄÄÆÄÀÏÇÒ ¶§ DBCS ¶Ç´Â EUC ȯ°æ¿¡¼­¸¸ ´ÙÀ½ µ¥ÀÌÅÍ À¯ÇüÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

GRAPHIC(1)
(468 ¶Ç´Â 469)

wchar_t
  • C-À¯ÇüÀÇ °æ¿ì ´ÜÀÏ ¿ÍÀÌµå ¹®ÀÚ
  • Ä÷³ À¯ÇüÀÇ °æ¿ì ´ÜÀÏ 2 ¹ÙÀÌÆ® ¹®ÀÚ


GRAPHIC(n)
(468 ¶Ç´Â 469)

Á¤È®ÇÑ ÇØ´ç µ¥ÀÌÅÍ À¯Çü ¾øÀ½, wchar_t [n+1] »ç¿ë. ¿©±â¼­ nÀº µ¥ÀÌÅ͸¦ À¯ÁöÇÒ¸¸Å­ ÃæºÐÈ÷ Å®´Ï´Ù.


1<=n<=127

°íÁ¤ ±æÀÌ 2 ¹ÙÀÌÆ® ¹®ÀÚ¿­

VARGRAPHIC(n)
(464 ¶Ç´Â 465)


struct tag {
short int;
wchar_t [n]
}
 
1<=n<=16 336

2 ¹ÙÀÌÆ® ¹®ÀÚ¿­ ±æÀÌ Ç¥½Ã±â¸¦ Æ÷ÇÔÇÏ¸ç ³Î·Î Á¾·áµÇ´Â °¡º¯ 2 ¹ÙÀÌÆ® ¹®ÀÚ¿­Àº ¾ø½À´Ï´Ù.
¶Ç´Â char[n+1] »ç¿ë. ¿©±â¼­ nÀº µ¥ÀÌÅ͸¦ À¯ÁöÇÒ¸¸Å­ ÃæºÐÈ÷ Å®´Ï´Ù.


1<=n<=16 336

³Î·Î Á¾·áµÇ´Â º¯¼ö ±æÀÌ 2 ¹ÙÀÌÆ® ¹®ÀÚ¿­

ÁÖ:ÇÒ´çµÈ 400/401ÀÇ SQL À¯Çü


LONG VARGRAPHIC
(472 ¶Ç´Â 473)


struct tag {
short int;
wchar_t [n]
}
 
16 337<=n<=16 350

2 ¹ÙÀÌÆ® ¹®ÀÚ¿­ ±æÀÌ Ç¥½Ã±â¸¦ Æ÷ÇÔÇÏ¸ç ³Î·Î Á¾·áµÇ´Â °¡º¯ 2 ¹ÙÀÌÆ® ¹®ÀÚ¿­Àº ¾ø½À´Ï´Ù.
ÁÖ:DBCS ¶Ç´Â EUC ȯ°æ¿¡¼­¸¸ ´ÙÀ½ µ¥ÀÌÅÍ À¯ÇüÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

DBCLOB(n)
(412 ¶Ç´Â 413)


sql type is
dbclob(n)
 
1<=n<=1 073 741 823

4 ¹ÙÀÌÆ® ¹®ÀÚ¿­ ±æÀÌ Ç¥½Ã±â¸¦ Æ÷ÇÔÇÏ¸ç ³Î·Î Á¾·áµÇ´Â °¡º¯ 2 ¹ÙÀÌÆ® ¹®ÀÚ¿­Àº ¾ø½À´Ï´Ù.

DBCLOB À§Ä¡ ÁöÁ¤ÀÚ º¯¼ö(TNTA4)
(968 ¶Ç´Â 969)


sql type is
dbclob_locator

¼­¹öÀÇ DBCLOB ¿£ÅÍÆ¼¸¦ ½Äº°ÇÕ´Ï´Ù.

DBCLOB ÆÄÀÏ ÂüÁ¶
º¯¼ö(TNTA4)
(924 ¶Ç´Â 925)


sql type is
dbclob_file

DBCLOB µ¥ÀÌÅ͸¦ Æ÷ÇÔÇÑ ÆÄÀÏÀÇ ¼³¸íÀÚ

ÁÖ:

  1. SQL Ä÷³ À¯Çü ¾Æ·¡¼­ ù¹øÂ° ¼ýÀڴ ǥ½Ã±â º¯¼ö°¡ Á¦°øµÇÁö ¾ÊÀº °æ¿ì¸¦ ³ªÅ¸³»¸ç µÎ ¹øÂ° ¼ýÀڴ ǥ½Ã±â º¯¼ö°¡ Á¦°øµÈ °æ¿ì¸¦ ³ªÅ¸³À´Ï´Ù. Ç¥½Ã±â º¯¼ö´Â ³Î(NULL) °ªÀ» ³ªÅ¸³»°Å³ª Àý´ÜµÈ ¹®ÀÚ¿­ÀÇ ±æÀ̸¦ À¯ÁöÇÏ´Â µ¥ ÇÊ¿äÇÕ´Ï´Ù. À̵éÀº ÇØ´ç µ¥ÀÌÅÍ À¯Çü¿¡ ´ëÇØ SQLDAÀÇ SQLTYPE¿¡ ³ªÅ¸³ª´Â °ªÀÔ´Ï´Ù.

  2. Ç÷§Æû ȣȯ¼ºÀ» À§ÇØ sqlint32¸¦ »ç¿ëÇϽʽÿÀ. 64-ºñÆ® UNIX Ç÷§Æû¿¡¼­ "±ä"Àº 64ºñÆ® Á¤¼öÀÔ´Ï´Ù. 64-ºñÆ® Windows ¿î¿µ üÁ¦¿Í 32-ºñÆ® UNIX Ç÷§Æû¿¡¼­ "±ä"Àº 32ºñÆ® Á¤¼öÀÔ´Ï´Ù.

  3. Ç÷§Æû ȣȯ¼ºÀ» À§Çؼ­´Â sqlint64¸¦ »ç¿ëÇϽʽÿÀ. Microsoft ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇÒ °æ¿ì DB2 Universal Database sqlsystm.h Çì´õ ÆÄÀÏÀº Windows NT Ç÷§Æû¿¡¼­ sqlint64¸¦ "__int64"·Î À¯Çü Á¤ÀÇÇÕ´Ï´Ù. 32ºñÆ® UNIX Ç÷§Æû¿¡¼­´Â "long long"À¸·Î Á¤ÀÇÇϰí 64ºñÆ® UNIX Ç÷§Æû¿¡¼­´Â "long"À¸·Î À¯Çü Á¤Àǵ˴ϴÙ.

  4. FLOAT(n) ¿©±â¼­ 0 < n < 25´Â REALÀÇ µ¿ÀǾîÀÔ´Ï´Ù. SQLDA¿¡¼­ REAL°ú DOUBLE »çÀÌÀÇ Â÷ÀÌÁ¡Àº ±æÀÌ °ª(4 ¶Ç´Â 8)ÀÔ´Ï´Ù.

  5. ´ÙÀ½ SQL À¯ÇüÀº DOUBLEÀÇ µ¿ÀǾîÀÔ´Ï´Ù.
    • FLOAT
    • FLOAT(n) ¿©±â¼­ 24 < n < 54
    • DOUBLE PRECISION

  6. ÀÌ´Â Ä÷³ À¯ÇüÀÌ ¾Æ´Ñ È£½ºÆ® º¯¼ö À¯ÇüÀÔ´Ï´Ù.

´ÙÀ½Àº Áö¿øµÇ´Â SQL µ¥ÀÌÅÍ À¯Çü¿¡ ´ëÇØ ¼±¾ðµÈ È£½ºÆ® º¯¼ö¸¦ Æ÷ÇÔÇÑ »ùÇà SQL ¼±¾ð ÀýÀÔ´Ï´Ù.

  EXEC SQL BEGIN DECLARE SECTION;
 
   
·
·
·
short age = 26; /* SQL type 500 */ short year; /* SQL type 500 */ sqlint32 salary; /* SQL type 496 */ sqlint32 deptno; /* SQL type 496 */ float bonus; /* SQL type 480 */ double wage; /* SQL type 480 */ char mi; /* SQL type 452 */ char name[6]; /* SQL type 460 */ struct { short len; char data[24]; } address; /* SQL type 448 */ struct { short len; char data[32695]; } voice; /* SQL type 456 */ sql type is clob(1m) chapter; /* SQL type 408 */ sql type is clob_locator chapter_locator; /* SQL type 964 */ sql type is clob_file chapter_file_ref; /* SQL type 920 */ sql type is blob(1m) video; /* SQL type 404 */ sql type is blob_locator video_locator; /* SQL type 960 */ sql type is blob_file video_file_ref; /* SQL type 916 */ sql type is dbclob(1m) tokyo_phone_dir; /* SQL type 412 */ sql type is dbclob_locator tokyo_phone_dir_lctr; /* SQL type 968 */ sql type is dbclob_file tokyo_phone_dir_flref; /* SQL type 924 */ struct { short len; sqldbchar data[100]; } vargraphic1; /* SQL type 464 */ /* Precompiled with WCHARTYPE NOCONVERT option */ struct { short len; wchar_t data[100]; } vargraphic2; /* SQL type 464 */ /* Precompiled with WCHARTYPE CONVERT option */ struct { short len; sqldbchar data[10000]; } long_vargraphic1; /* SQL type 472 */ /* Precompiled with WCHARTYPE NOCONVERT option */ struct { short len; wchar_t data[10000]; } long_vargraphic2; /* SQL type 472 */ /* Precompiled with WCHARTYPE CONVERT option */ sqldbchar graphic1[100]; /* SQL type 468 */ /* Precompiled with WCHARTYPE NOCONVERT option */ wchar_t graphic2[100]; /* SQL type 468 */ /* Precompiled with WCHARTYPE CONVERT option */ char date[11]; /* SQL type 384 */ char time[9]; /* SQL type 388 */ char timestamp[27]; /* SQL type 392 */ short wage_ind; /* Null indicator */
·
·
·
EXEC SQL END DECLARE SECTION;

´ÙÀ½Àº Áö¿øµÇ´Â C/C++ µ¥ÀÌÅÍ À¯Çü¿¡ ´ëÇÑ Ãß°¡ ±ÔÄ¢ÀÔ´Ï´Ù.

C ¹× C++ÀÇ 2Áø µ¥ÀÌÅÍ¿ë

Ç¥ÁØ C ¶Ç´Â C++ ¹®ÀÚ¿­ À¯Çü 460Àº 2Áø µ¥ÀÌÅÍ¿ëÀ¸·Î ÁöÁ¤µÈ Ä÷³¿¡ »ç¿ëÇØ¼± ¾ÈµË´Ï´Ù. ³Î ¹®ÀÚ°¡ ³ªÅ¸³ª¸é µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼­ ÀÌ µ¥ÀÌÅÍ À¯ÇüÀ» Àý´ÜÇÕ´Ï´Ù. VARCHAR(SQL À¯Çü 448) ¶Ç´Â CLOB(SQL À¯Çü 408) ±¸Á¶¸¦ »ç¿ëÇϽʽÿÀ.


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