IBM Books

Net.Data ÂüÁ¶¼­


Áö¿ø ¾ð¾î ȯ°æ

Net.Data´Â »õ ¾ð¾î ¹× µ¥ÀÌŸº£À̽º ÀÎÅÍÆäÀ̽º°¡ 'Ç÷¯±× °¡´É' ¹æ½ÄÀ¸·Î Ãß°¡µÉ ¼ö ÀÖµµ·Ï ¼³°èµÇ¾ú½À´Ï´Ù. ÀÌµé ¾ð¾î ȯ°æÀº ¼­ºñ½º ÇÁ·Î±×·¥À¸·Î¼­ ¾×¼¼½ºµË´Ï´Ù. ¼­ºñ½º ÇÁ·Î±×·¥¸íÀº Net.Data Ãʱ⼳Á¤ ÆÄÀÏ¿¡ ±¸¼ºµÇ°í, ¾ð¾î ȯ°æ¸í°ú ¿¬°áµË´Ï´Ù. °¢ ¾ð¾î ȯ°æÀº Net.Data¿¡ ÀÇÇØ Á¤ÀǵǴ ǥÁØ ÀÎÅÍÆäÀ̽º ÁýÇÕÀ» Áö¿øÇØ¾ß ÇÕ´Ï´Ù.

OS/400¿ë Net.Data´Â ´ÙÀ½°ú °°Àº ¾ð¾î ȯ°æÀ» Áö¿øÇÕ´Ï´Ù.

´ÙÀ½ Àý¿¡¼­´Â ¾Õ¿¡¼­ ¾ð±ÞÇÑ ¾ð¾î ȯ°æ¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù.

REXX(DTW_REXX) ¾ð¾î ȯ°æ

REXX ¾ð¾î ȯ°æÀº Net.Data ¸ÅÅ©·ÎÀÇ FUNCTION ºí·Ï¿¡ ÁöÁ¤µÈ ³»ºÎ REXX ÇÁ·Î±×·¥À» ÇØ¼®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶Ç´Â, º°µµ ÆÄÀÏ¿¡ ÀúÀåµÈ ¿ÜºÎ REXX ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. REXX ¾ð¾î ȯ°æÀÇ Æ¯Â¡Àº ´ÙÀ½°ú °°½À´Ï´Ù.

REXX ÇÁ·Î±×·¥Àº rEXX ½ºÅÛ º¯¼ö·Î¼­ Net.Data ¸ÅÅ©·Î Å×ÀÌºí ¸Å°³º¯¼ö °ª¿¡ ¾×¼¼½ºÇÏ°Ô µË´Ï´Ù. REXX ÇÁ·Î±×·¥¿¡°Ô, T Å×ÀÌºí¿¡ ´ëÇÑ Ä÷³ Ç¥Á¦´Â T_N.iÀ̰í, ÇÊµå °ªÀº T_V.i.jÀÔ´Ï´Ù.

¿ÜºÎ REXX ÇÁ·Î±×·¥ È£ÃâÀº, ´ÙÀ½°ú °°Àº Çü½ÄÀÇ ¸í·É¹®¿¡ ÀÇÇØ FUNCTION ºí·Ï¿¡¼­ ½Äº°µË´Ï´Ù.

%EXEC{ REXX-file-name Yoptional parameters" %}

´ÙÀ½Àº ³»ºÎ REXX ÇÁ·Î±×·¥°ú ¿ÜºÎ REXX ÇÁ·Î±×·¥¿¡ ´ëÇÑ ÂüÁ¶ ¸ðµÎ°¡ ÀÖ´Â ¸ÅÅ©·Î(REXXM)ÀÇ °£´ÜÇÑ ¿¹ÀÔ´Ï´Ù.

%define a = "3"
%define b = "0"

%function(DTW_REXX) func1(IN inp1, OUT outp1){
%EXEC{ /QSYS.LIB/REXX.LIB/REXXSRC.FILE/TREXX.MBR %}
%}

%function(DTW_REXX) func2(IN inp1, OUT outp1){
outp1 = 2*inp1
%}

%HTML(REPORT){
@func1(a, b)
b=$(b)
@func2(a, b)
b=$(b)
%}

ÀÌ ¿¹¿¡¼­, @func1ÀÇ °á°ú´Â REXX ÇÁ·Î±×·¥ TREXX.MBRÀÌ REXX ÇØ¼®±â¿¡ ÀÇÇØ ÇØ¼®µÇ°í, @func2 °á°ú´Â REXX ÇØ¼®±â¿¡¼­ "outp1 = 2*inp1" ¸í·É¹®À» ÇØ¼®ÇÕ´Ï´Ù. µÎ °æ¿ì ¸ðµÎ, REXX º¯¼ö Ç®ÀÌ ¼³Á¤µÇ¾î REXX ÇØ¼®±â´Â "a" ¹× "b" º¯¼ö¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù. @func2°¡ ¿Ï·áµÈ ÈÄ "b"´Â "6"À¸·Î ¼³Á¤µË´Ï´Ù(REXX ÇÁ·Î±×·¥ TREXX.MBRÀÌ "a"¸¦ ¼öÁ¤ÇÏÁö ¾Ê¾Ò´Ù°í ÀüÁ¦).

À̰ÍÀº ´ÙÀ½À» ÀüÁ¦·Î ÇÏ´Â, ¸ÅÅ©·Î¸¦ ÂüÁ¶ÇÏ´Â ¿¹Á¦ URLÀÔ´Ï´Ù.

http://hostname/cgi-bin/db2www/WWW/macro/REXXM/report

Net.Data Ãʱ⼳Á¤ ÆÄÀÏÀ» ÀÛ¼ºÇÏÁö ¾Ê±â·Î ÇÑ °æ¿ì, »ý·«½Ã °ªÀ¸·Î REXX ¾ð¾î ȯ°æÀÌ ÀÛµ¿ °¡´ÉÇÕ´Ï´Ù. ±×·¯³ª, Ãʱ⼳Á¤ ÆÄÀÏÀ» ÀÛ¼ºÇß°í REXX ¾ð¾î ȯ°æÀ» »ç¿ëÇÏ·Á´Â °æ¿ì, ´ÙÀ½°ú °°Àº ±¸¼º ¸í·É¹®ÀÌ Ãʱ⼳Á¤ ÆÄÀÏ¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

ENVIRONMENT(DTW_REXX) /QSYS.LIB/QTCP.LIB/QTMHREXX.SRVPGM ( )

SQL(DTW_SQL ¶Ç´Â SQL) ¾ð¾î ȯ°æ

SQL ¾ð¾î ȯ°æÀº DB2¸¦ »ç¿ëÇÏ¿© SQL¹®À» ½ÇÇàÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. SQL ¾ð¾î ȯ°æÀÇ Æ¯Â¡Àº ´ÙÀ½°ú °°½À´Ï´Ù.

´ÙÀ½Àº ´ÜÀÏ SQL ¸í·ÉÀ» ¹ßÇàÇÏ´Â °£´ÜÇÑ ¸ÅÅ©·ÎÀÇ ¿¹(SQLM)ÀÔ´Ï´Ù.

%define DATABASE="HOSTNAME"

%FUNCTION(DTW_SQL) sql1 (){
select * from custinfo.customer
%}

%HTML(REPORT){
@sql1()
 %}

¸ÅÅ©·Î¸¦ ÂüÁ¶ÇÏ´Â URLÀº, ¸ÅÅ©·Î ÆÄÀϸí REXXMÀÌ SQLMÀ¸·Î ±³Ã¼µÇ´Â °Í¸¸ »©°í, REXX ¾ð¾î ȯ°æ¿¡ ´ëÇØ Á¦°øµÈ ¿¹Á¦ URL°ú À¯»çÇÕ´Ï´Ù.

Net.Data Ãʱ⼳Á¤ ÆÄÀÏÀ» ÀÛ¼ºÇÏÁö ¾Ê±â·Î ¼±ÅÃÇÑ °æ¿ì, »ý·«½Ã °ªÀ¸·Î SQL ¾ð¾î ȯ°æÀÌ ÀÛµ¿°¡´ÉÇÏ°Ô µË´Ï´Ù. ±×·¯³ª, Ãʱ⼳Á¤ ÆÄÀÏÀ» ÀÛ¼ºÇß°í SQL ¾ð¾î ȯ°æÀ» »ç¿ëÇϰíÀÚ ÇÏ´Â °æ¿ì, ´ÙÀ½°ú °°Àº ±¸¼º ¸í·É¹®ÀÌ Ãʱ⼳Á¤ ÆÄÀÏ¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

ENVIRONMENT(DTW_SQL)  /QSYS.LIB/QTCP.LIB/QTMHSQL.SRVPGM
  ( IN DATABASE, LOGIN, PASSWORD, TRANSACTION_SCOPE, SHOWSQL, DTW_SET_TOTAL_ROWS,
    DB_CASE, OUT DTWTABLE, SQL_CODE, TOTAL_ROWS  )

Ãʱ⼳Á¤ ÆÄÀÏ¿¡¼­ ÀÌ È¯°æ ¸í·É¹®ÀÇ ÅØ½ºÆ®´Â ¸ðµÎ ÇÑ Çà¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¿©±â¿¡¼­´Â ÀÐ±â ÆíÇϵµ·Ï ¿©·¯ ÇàÀ¸·Î ³ª´©¾î Ç¥½ÃÇß½À´Ï´Ù.

À§ ±¸¼º ¸í·É¹®ÀÇ SQL ¾ð¾î ȯ°æ ¸Å°³º¯¼öµéÀº ¾ð¾î È£³ª°æÀ¸·Î Àü´ÞµÇ°í ¾Æ·¡¿Í °°ÀÌ ¼³¸íµË´Ï´Ù.

½Ã½ºÅÛ(DTW_SYSTEM) ¾ð¾î ȯ°æ

SYSTEM ¾ð¾î ȯ°æÀº FUNCTION ºí·ÏÀÇ EXEC ¸í·É¹®¿¡¼­ ½Äº°µÇ´Â ¿ÜºÎ ÇÁ·Î±×·¥À¸·ÎÀÇ È£ÃâÀ» Áö¿øÇÕ´Ï´Ù.

SYSTEM ¾ð¾î ȯ°æÀº C ¾ð¾î ½Ã½ºÅÛ() ÇÔ¼ö È£ÃâÀ» »ç¿ëÇÏ¿© ½ÇÇàÀ» À§ÇØ ÁöÁ¤µÈ ÇÁ·Î±×·¥¸í ¹× ¸Å°³º¯¼ö¸¦ ¿î¿ë ½Ã½ºÅÛÀ¸·Î Àü´ÞÇÔÀ¸·Î½á EXEC ¸í·É¹®À» ÇØ¼®ÇÕ´Ï´Ù. ÀÌ ¹æ¹ýÀº Net.Data º¯¼ö°¡ REXX ¾ð¾î ȯ°æÀÌ ÇÏ´Â °Íó·³ ½ÇÇà°¡´É ¸í·É¹®À¸·Î Á÷Á¢ Àü´ÞµÇ°Å³ª °Ë»öµÇÁö ¸øÇϵµ·Ï ÇÕ´Ï´Ù. µû¶ó¼­, SYSTEM ¾ð¾î ȯ°æÀº ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î º¯¼ö¸¦ Àü´Þ ¹× °Ë»öÇÕ´Ï´Ù.

SYSTEM ¾ð¾î ȯ°æ ÇÁ·Î±×·¥Àº Net.Data¸í¿¡ ÀÇÇØ Net.Data ¸ÅÅ©·Î Å×ÀÌºí ¸Å°³º¯¼ö °ª¿¡ ¾×¼¼½ºÇÕ´Ï´Ù. Å×À̺í T¿¡ ´ëÇÑ Ä÷³ Ç¥Á¦´Â T_N_iÀ̰í, Çʵ尪Àº T_V_i_jÀÔ´Ï´Ù.

SYSTEM ¾ð¾î ȯ°æÀº ½ÇÇà °¡´ÉÇÑ ¸í·É¾î³ª ÇÁ·Î±×·¥À̱⸦ ±â´ëÇÕ´Ï´Ù. QTMHHTP1 »ç¿ëÀÚ ÇÁ·ÎÆÄÀÏ¿¡´Â ½ÇÇà °¡´ÉÇÏ°Ô »ç¿ëÇÏ´Â ÀÚ¿ø ¿Ü¿¡µµ, ½ÇÇà °¡´ÉÀ» ¼öÇàÇÒ ±ÇÇÑÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

´ÙÀ½Àº, ÇÑ Net.Data ¸Å°³º¯¼ö·Î Àü´ÞÇÏ¿© ½ÇÇà °¡´ÉÇÏ°Ô ÇÁ·Î±×·¥À» ÁöÁ¤ÇÏ´Â °£´ÜÇÑ ¸ÅÅ©·ÎÀÇ ¿¹(SYSM)ÀÔ´Ï´Ù.

%define var1 = "OriginalValue"

%FUNCTION(DTW_SYSTEM) test(INOUT parm1){
%EXEC{ /QSYS.LIB/PGM.LIB/TSYS0001.PGM %}
%}

%HTML(REPORT){
<PRE>
Value of var1 before function call: $(var1)
@test(var1)
Value of var1 after function call: $(var1)
</PRE>
%}

¸ÅÅ©·Î¸¦ ÂüÁ¶ÇÏ´Â URLÀº, ¸ÅÅ©·Î ÆÄÀϸí REXXMÀÌ SYSMÀ¸·Î ±³Ã¼µÇ´Â °ÍÀ» Á¦¿ÜÇϰí´Â, REXX ¾ð¾î ȯ°æ¿¡ ÁÖ¾îÁø URL ¿¹Á¦¿Í À¯»çÇÕ´Ï´Ù.

Net.Data Ãʱ⼳Á¤ ÆÄÀÏÀ» ÀÛ¼ºÇÏÁö ¾Ê±â·Î ¼±ÅÃÇÑ °æ¿ì, »ý·«½Ã °ªÀ¸·Î SYSTEM ¾ð¾î ȯ°æÀÌ ÀÛµ¿°¡´ÉÇÏ°Ô µË´Ï´Ù. ±×·¯³ª, Ãʱ⼳Á¤ ÆÄÀÏÀ» ÀÛ¼ºÇß°í SYSTEM ¾ð¾î ȯ°æÀ» »ç¿ëÇϰíÀÚ ÇÏ´Â °æ¿ì, ´ÙÀ½°ú °°Àº ±¸¼º ¸í·É¹®ÀÌ Ãʱ⼳Á¤ ÆÄÀÏ¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

ENVIRONMENT(DTW_SYSTEM) /QSYS.LIB/QTCP.LIB/QTMHSYS.SRVPGM ( )


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