È£ÃâÇϸé DB2DARI ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ ´ÙÀ½À» ¼öÇàÇÕ´Ï´Ù.
SQLDA ±¸Á¶¸¦ »ç¿ëÇÏ¿© ÀúÀå ÇÁ·Î½Ãµà¾î·Î °ªÀ» Àü´ÞÇÏ·Á¸é ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ È£ÃâÇϱâ Àü¿¡ ´ÙÀ½ ´Ü°è¸¦ ¼öÇàÇϽʽÿÀ.
»ç¿ëÀÚÀÇ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ 2Áø µ¥ÀÌÅÍ¿ëÀ¸·Î Á¤ÀÇµÈ ¹®ÀÚ¿¿¡ ´ëÇØ ÀÛ¾÷ÇÒ °æ¿ì SQLDAID Çʵ带 ÃʱâÈÇÏ¿© SQLDA¿¡ 2Áø µ¥ÀÌÅÍ¿ë Á¤ÀÇ¿Í 2Áø µ¥ÀÌÅÍ¿ë ±¸¼º¿ä¼Ò¸¦ Á¤ÀÇÇÏ´Â °¢ SQLVARÀÇ SQLNAME Çʵ尡 ÀÖÀ½À» ³ªÅ¸³»¾ß ÇÕ´Ï´Ù.
»ç¿ëÀÚÀÇ ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ ´ëÇü ¿ÀºêÁ§Æ®(LOB) Áï, CLOB, BLOB ¶Ç´Â DBCLOB À¯ÇüÀÇ µ¥ÀÌÅÍ¿¡ ´ëÇØ ÀÛ¾÷ÇÒ °æ¿ì 2Â÷ SQLVAR ±¸¼º¿ä¼Òµµ ÃʱâÈÇØ¾ß ÇÕ´Ï´Ù. SQLDA ±¸Á¶¿¡ ´ëÇØ¼´Â SQL ÂüÁ¶¼¿¡¼ ÀÚ¼¼ÇÑ ³»¿ëÀ» ÂüÁ¶ÇϽʽÿÀ.
È£½ºÆ® º¯¼ö ÇÒ´ç¿¡¼ ¾ð±ÞÇÑ °Í°ú °°Àº Á¢±Ù ¹æ¹ýÀ» »ç¿ëÇÏ¿© SQLVAR¸¦ ¼±¾ðÇϽʽÿÀ. ¶ÇÇÑ Å¬¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ Ãâ·Â Àü¿ë SQLVARÀ» µ¥ÀÌÅÍ ±¸Á¶ Á¶ÀÛ¿¡¼ ¾ð±ÞÇÑ ´ë·Î -1·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ±×·¯¸é Ç¥½Ã±â¸¸ Àü¼ÛµÇ¹Ç·Î SQLDATA Æ÷ÀÎÅÍÀÇ ³»¿ëÀ» Àü´ÞÇÒ Çʿ並 ¾ø¾Ö ¸Å°³º¯¼ö Àü´Þ ¸ÞÄ«´ÏÁòÀÇ ¼º´ÉÀ» Çâ»ó½Ãų ¼ö ÀÖ½À´Ï´Ù. ÀÌ·± ¸Å°³º¯¼öÀÇ °æ¿ì SQLTYPE Çʵ带 ³Î(NULL) ÀÔ·Â °¡´É µ¥ÀÌÅÍ À¯ÇüÀ¸·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. SQLTYPE¿¡¼ ³Î ÀÔ·Â ºÒ°¡´É µ¥ÀÌÅÍ À¯ÇüÀ» Áö½ÃÇÒ °æ¿ì µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼ Ç¥½Ã±â º¯¼ö¸¦ Á¡°ËÇÏÁö ¸øÇÕ´Ï´Ù.
ÀúÀå ÇÁ·Î½Ãµà¾î´Â SQL CALL¹®À¸·Î È£ÃâµÇ¸ç Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ Àü´ÞÇÏ´Â µ¥ÀÌÅ͸¦ »ç¿ëÇÏ¿© ½ÇÇàµË´Ï´Ù. Á¤º¸´Â ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ SQLDA ±¸Á¶¸¦ ÅëÇØ Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥À¸·Î ¸®Åϵ˴ϴÙ.
SQL CALL¹®ÀÇ ¸Å°³º¯¼ö´Â ÀÔ·Â ¹× Ãâ·Â ¸Å°³º¯¼ö·Î 󸮵Ǹç ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ À§ÇØ ´ÙÀ½ Çü½ÄÀ¸·Î º¯È¯µË´Ï´Ù.
SQL_API_RC SQL_API_FN proc_name( void *reserved1, void *reserved2, struct sqlda *inoutsqlda, struct sqlca *sqlca )
SQL_API_FNÀº Áö¿øµÇ´Â °¢ ¿î¿µ üÁ¦¿¡ µû¶ó ´Þ¶óÁú ¼ö ÀÖ´Â ÇÔ¼öÀÇ È£Ãâ º¯È¯À» ÁöÁ¤ÇÏ´Â ¸ÅÅ©·ÎÀÔ´Ï´Ù. ÀúÀå ÇÁ·Î½Ãµà¾î ¶Ç´Â UDF¸¦ ÀÛ¼ºÇÒ¶§ ÀÌ ¸ÅÅ©·Î°¡ ÇÊ¿äÇÕ´Ï´Ù.
´ÙÀ½Àº CALL¹®À» »ç¿ëÇÏ¿© ¼¹öÀÇ ¸Å°³º¯¼ö ¸ñ·Ï¿¡ ¸ÊÇÎÇÏ´Â ¹æ¹ýÀÇ ¿¹ÀÔ´Ï´Ù.
CALL OUTSRV (:empno:empind,:salary:salind)
ÀÌ È£ÃâÀÇ ¸Å°³º¯¼ö´Â µÎ SQLDA°¡ Æ÷ÇÔµÈ SQLDA ±¸Á¶·Î º¯È¯µË´Ï´Ù. ù¹øÂ° SQLVARÀº empno È£½ºÆ® º¯¼ö¿Í empind Ç¥½Ã±â º¯¼ö¸¦ Áö½ÃÇÕ´Ï´Ù. µÎ ¹øÂ° SQLVARÀº salary È£½ºÆ® º¯¼ö¿Í salind Ç¥½Ã±â º¯¼ö¸¦ Áö½ÃÇÕ´Ï´Ù.
ÁÖ: | SQLD ±¸¼º¿ä¼ÒÀÇ ¼ö¸¦ 0À¸·Î ¼³Á¤ÇÑ °æ¿ì SQLDA ±¸Á¶´Â ÀúÀå ÇÁ·Î½Ãµà¾î·Î Àü´ÞµÇÁö ¾Ê½À´Ï´Ù. ÀÌ °æ¿ì SQLDA°¡ Àü´ÞµÇÁö ¾ÊÀ¸¸é ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ ³Î Æ÷ÀÎÅ͸¦ ¼ö½ÅÇÕ´Ï´Ù. |
µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼´Â µ¥ÀÌÅͺ£À̽º ¼¹ö¿¡¼ ÀÚµ¿À¸·Î Áߺ¹ SQLDA ±¸Á¶¸¦ ÇÒ´çÇÕ´Ï´Ù. ³×Æ®¿öÅ© Åë½Å·®À» ÁÙÀÌ·Á¸é ÀÔ·Â Àü¿ëÀÇ È£½ºÆ® º¯¼ö¿Í Ãâ·Â Àü¿ëÀÇ È£½ºÆ® º¯¼ö¸¦ Áö½ÃÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î½Ãµà¾î¿¡¼ Ãâ·Â Àü¿ë SQLVARÀÇ Ç¥½Ã±â¸¦ -1·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ¼¹ö ÇÁ·Î½Ãµà¾î¿¡¼ ÀÔ·Â Àü¿ë SQLVARÀÇ Ç¥½Ã±â¸¦ -128·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ±×·¸°Ô ÇÏ¸é µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡¼ Àü´ÞµÈ SQLVARÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù.
Ŭ¶óÀÌ¾ðÆ® ¶Ç´Â ¼¹ö¿¡¼ Ç¥½Ã±â º¯¼ö¸¦ À½ÀÇ °ªÀ¸·Î ¼³Á¤Çϸé Áï, SQLVARÀ» Àü´ÞÇÏÁö ¸øÇÏ°Ô ¼³Á¤Çϸé Ç¥½Ã±â º¯¼ö´Â Àç¼³Á¤µÇÁö ¾Ê½À´Ï´Ù. SQLVAR¿¡¼ ÂüÁ¶Çϴ ȣ½ºÆ® º¯¼ö¿¡ ÀúÀå ÇÁ·Î½Ãµà¾î ¶Ç´Â Ŭ¶óÀÌ¾ðÆ® ÄÚµåÀÇ °ªÀÌ ÁöÁ¤µÇ¸é °ªÀÌ Àü´ÞµÇµµ·Ï Ç¥½Ã±â º¯¼ö¸¦ 0À̳ª ¾çÀÇ °ªÀ¸·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, ÇÑ Ãâ·Â Àü¿ë ¸Å°³º¯¼ö¸¦ ÃëÇÏ¸ç ´ÙÀ½°ú °°ÀÌ È£ÃâµÇ´Â ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ °¡Á¤Çغ¾½Ã´Ù.
empind = -1; EXEC SQL CALL storproc(:empno:empind);
ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ ù¹øÂ° SQLVARÀÇ °ªÀ» ¼³Á¤ÇÏ¸é °á°ú°¡ empno·Î ´Ù½Ã Àü´ÞµÇµµ·Ï Ç¥½Ã±âÀÇ °ªµµ À½ÀÌ ¾Æ´Ñ °ªÀ¸·Î ¼³Á¤ÇØ¾ß ÇÕ´Ï´Ù.
Ç¥ 53¿¡¼´Â ÀúÀå ÇÁ·Î½Ãµà¾î ÀÀ¿ëÇÁ·Î±×·¥¿¡ µû¸¥ ´Ù¾çÇÑ ±¸Á¶ ÇʵåÀÇ »ç¿ëÀ» ¿ä¾àÇÕ´Ï´Ù. Å×ÀÌºí¿¡¼ sqlda´Â ÀúÀå ÇÁ·Î½Ãµà¾î·Î Àü´ÞµÇ´Â SQLDA ±¸Á¶À̰í nÀº SQLDAÀÇ Æ¯Á¤ SQLVAR ±¸¼º¿ä¼Ò¸¦ Áö½ÃÇÏ´Â ¼ýÀÚ °ªÀÔ´Ï´Ù. ¿À¸¥ÂÊÀÇ ¼ýÀÚ´Â Å×ÀÌºí µÚ¿¡ ³ª¿À´Â ÁÖ¸¦ ÀǹÌÇÕ´Ï´Ù.
Ç¥ 53. ÀúÀå ÇÁ·Î½Ãµà¾î ¸Å°³º¯¼ö
ÀÔ/Ãâ·Â SQLDA | sqlda.SQLDAID |
|
|
| 4 |
|
|
|
|
| ||
| sqlda.SQLDABC |
|
|
| 4 |
|
|
|
|
| ||
| sqlda.SQLN |
| 2 |
| 4 |
|
|
|
|
| ||
| sqlda.SQLD |
| 2 | 3 |
| 5 |
|
|
|
| ||
ÀÔ/Ãâ·Â SQLVAR | sqlda.n.SQLTYPE |
| 2 | 3 |
| 5 |
|
|
|
| ||
| sqlda.n.SQLLEN |
| 2 | 3 |
| 5 |
|
|
|
| ||
| sqlda.n.SQLDATA | 1 | 2 | 3 |
|
| 6 |
| 8 |
| ||
| sqlda.n.SQLIND | 1 | 2 | 3 |
|
| 6 |
| 8 | 9 | ||
| sqlda.n.SQLNAME.length |
|
|
|
|
| 6 | 7 |
|
| ||
| sqlda.n.SQLNAME.data |
|
|
|
|
| 6 | 7 |
|
| ||
| sqlda.n.SQLDATATYPE_NAME |
| 2 | 3 |
| 5 |
|
|
|
| ||
| sqlda.n.SQLLONGLEN |
| 2 | 3 |
| 5 |
|
|
|
| ||
| sqlda.n.SQLDATALEN | 1 | 2 | 3 |
|
| 6 | 7 |
|
| ||
SQLCA(¸ðµç ¿ä¼Ò) |
|
|
|
|
|
| 6 | 7 |
|
| ||
|
ÀÌ ÀúÀå ÇÁ·Î½Ãµà¾î´Â SQLDA ±¸Á¶ÀÇ ÀÔ·Â º¯¼ö·Î Àü´ÞµÈ Á¤º¸¸¦ »ç¿ëÇÏ¿© ¼öÇàµË´Ï´Ù. Á¤º¸´Â SQLDAÀÇ Ãâ·Â º¯¼ö·Î Ŭ¶óÀÌ¾ðÆ®¿¡ ¸®Åϵ˴ϴÙ. SQLDAÀÇ SQLD, SQLTYPE ¹× SQLLEN ÇʵåÀÇ °ªÀº µ¥ÀÌÅ͸¦ ¸®ÅÏÇϱâ Àü¿¡ Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥¿¡¼ ¼³Á¤ÇÑ ¿ø·¡ °ª°ú ºñ±³µÇ¹Ç·Î ÀÌ·± ÇʵåÀÇ °ªÀº º¯°æÇÏÁö ¸¶½Ê½Ã¿À. µÎ °ªÀÌ ´Ù¸¦ °æ¿ì ´ÙÀ½ SQLCODE Áß Çϳª°¡ ¸®Åϵ˴ϴÙ.
¶ÇÇÑ SQLDATA ¹× SQLIND Çʵ忡¼ Áö½ÃÇÏ´Â °ªÀ» º¯°æÇÒ ¼ö ÀÖ´õ¶óµµ ÀÌ·± ÇʵåÀÇ Æ÷ÀÎÅ͸¦ º¯°æÇÏÁö ¸¶½Ê½Ã¿À.
ÁÖ: | ÀԷ°ú Ãâ·Â¿¡ µ¿ÀÏ º¯¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. |
ÀúÀå ÇÁ·Î½Ãµà¾î¿¡¼ ¸®ÅÏÇϱâ Àü¿¡ ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ SQLCA ¸Å°³º¯¼ö·Î SQLCA Á¤º¸¸¦ ¸í½ÃÀûÀ¸·Î º¹»çÇØ¾ß ÇÕ´Ï´Ù.
ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ ¸®ÅÏ °ªÀº Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥À¸·Î ¸®ÅϵÇÁö ¾Ê½À´Ï´Ù. ³ª°¥¶§ ¼¹ö ÇÁ·Î½Ãµà¾î¸¦ ¸Þ¸ð¸®¿¡¼ ¸±¸®½ºÇØ¾ß ÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÒ¶§ µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥¿¡ ÀÇÇØ »ç¿ëµË´Ï´Ù.
ÀúÀå ÇÁ·Î½Ãµà¾î´Â ´ÙÀ½ °ª Áß Çϳª¸¦ ¸®ÅÏÇÕ´Ï´Ù.
ÀúÀå ÇÁ·Î½Ãµà¾î°¡ ÇÑ ¹ø¸¸ È£ÃâµÉ °æ¿ì SQLZ_DISCONNECT_PROC¸¦ ¸®ÅÏÇØ¾ß ÇÕ´Ï´Ù.
Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥ÀÌ ¿©·¯ ¹øÀÇ È£ÃâÀ» ¹ßÇàÇÏ¿© µ¿ÀÏÇÑ ÀúÀå ÇÁ·Î½Ãµà¾î¸¦ È£ÃâÇÒ °æ¿ì, SQLZ_HOLD_PROC´Â ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ ¸®ÅÏ °ªÀÌ µÇ¾î¾ß ÇÕ´Ï´Ù. ÀúÀå ÇÁ·Î½Ãµà¾î´Â ·Îµå ÇØÁ¦µÇÁö ¾Ê½À´Ï´Ù.
SQLZ_HOLD_PROC°¡ »ç¿ëµÉ °æ¿ì, ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ ÃÖÁ¾ È£ÃâÀº SQLZ_DISCONNECT_PROC °ªÀ» ¸®ÅÏÇÏ¿© ÁÖ ¸Þ¸ð¸®·ÎºÎÅÍ ÀúÀå ÇÁ·Î½Ãµà¾î ¶óÀ̺귯¸®¸¦ Á¦°ÅÇØ¾ß ÇÕ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ¶óÀ̺귯¸®´Â µ¥ÀÌÅͺ£À̽º °ü¸® ÇÁ·Î±×·¥ÀÌ ÁßÁöµÉ¶§±îÁö ÁÖ ¸Þ¸ð¸®¿¡ ³²¾Æ ÀÖ½À´Ï´Ù. ÀúÀå ÇÁ·Î½Ãµà¾î¿¡ ´ëÇÑ °æ°í·Î¼ Ŭ¶óÀÌ¾ðÆ® ÀÀ¿ëÇÁ·Î±×·¥Àº ÃÖÁ¾ È£ÃâÀ» Ç¥½ÃÇÏ´Â ¸Å°³º¯¼ö Áß Çϳª·Î Ç÷¡±×¸¦ Àü´ÞÇÒ ¼ö ÀÖ½À´Ï´Ù.