IBM Books

Net.Data ÂüÁ¶¼­


¸ÅÅ©·Î ¾ð¾î ±¸¼º

ÀÌ Àý¿¡¼­´Â Net.Data ¸ÅÅ©·Î ÆÄÀÏ¿¡¼­ »ç¿ëµÇ´Â ¾ð¾î ±¸¼º¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù£®

°¢ ¾ð¾î ±¸¼º ¼³¸í¿¡´Â ´ÙÀ½ Á¤º¸°¡ µé¾î ÀÖ½À´Ï´Ù£®

¸ñÀû
Net.Data ¸ÅÅ©·Î¿¡ ÇØ´ç ¾ð¾î ±¸¼ºÀ» »ç¿ëÇÏ´Â ÀÌÀ¯¸¦ Á¤ÀÇÇÕ´Ï´Ù£®

±¸¹®
¾ð¾î ±¸¼ºÀÇ ³í¸® ±¸Á¶ÀÇ µµÇ¥¸¦ Á¦°øÇÕ´Ï´Ù£®

¸Å°³º¯¼ö
±¸¹® µµÇ¥ÀÇ ¸ðµç ¿ä¼Ò¸¦ Á¤ÀÇÇÏ°í ´Ù¸¥ ¾ð¾î ±¸¼º ±¸¹® ¹× ¿¹Á¦·ÎÀÇ »óÈ£ ÂüÁ¶¸¦ Á¦°øÇÕ´Ï´Ù£®

¹®¸Æ
Net.Data ¸ÅÅ©·Î ±¸Á¶¿¡¼­ ¾ð¾î ±¸¼ºÀÌ »ç¿ëµÉ ¼ö ÀÖ´Â À§Ä¡¿¡ ´ëÇØ ¼³¸íÇÕ´Ï´Ù£®

Á¦ÇÑ»çÇ×
¾î¶² ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ´ÂÁö¸¦ Á¤ÀÇÇÏ°í ¸ðµç »ç¿ë»óÀÇ Á¦ÇÑ»çÇ×À» ÁöÁ¤ÇÕ´Ï´Ù£®

¿¹Á¦
Net.Data ¸ÅÅ©·Î³»¿¡¼­ Ű¿öµå ¸í·É¹® ¹× ºí·Ï »ç¿ë¿¡ ´ëÇÑ °£´ÜÇÑ ¿¹Á¦ ¹× ¼³¸íÀ» Á¦°øÇÕ´Ï´Ù£®

´ÙÀ½ ±¸¼ºÀÌ ¸ÅÅ©·Î¿¡¼­ »ç¿ëµË´Ï´Ù£®±¸¹® ¹× ¿¹Á¦´Â °¢ ±¸¼º ¼³¸íÀ» Âü°íÇϽʽÿÀ£®

ÁÖ¼® ºí·Ï

¸ñÀû

Net.Data ¸ÅÅ©·Î ÇÔ¼ö¸¦ ¹®¼­·Î ÀÛ¼ºÇÕ´Ï´Ù£®COMMENT ºí·ÏÀ» ¸ÅÅ©·Î ÆÄÀÏÀÇ ¸ðµç À§Ä¡¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î ´Ù¸¥ ±¸¹® µµÇ¥¿¡ ¹®¼­·Î ³ªÅ¸³ªÁö´Â ¾Ê½À´Ï´Ù£®

±¸¹®

>>-%{---text---%}----------------------------------------------><
 

°ª

text
ÇÑ Çà ÀÌ»óÀÇ ¹®ÀÚ¿­£®Net.Data´Â ¸ðµç ÁÖ¼®ÀÇ ³»¿ëÀ» ¹«½ÃÇÕ´Ï´Ù£®

¹®¸Æ

ÁÖ¼®Àº Net.Data ¸ÅÅ©·ÎÀÇ Net.Data ¾ð¾î ±¸¼º »çÀÌÀÇ ¾î´À À§Ä¡¿¡µµ ³õÀÏ ¼ö ÀÖ½À´Ï´Ù£®

Á¦ÇÑ

¸ðµç ÅØ½ºÆ®³ª ¹®ÀÚ°¡ Çã¿ëµÇ³ª ÁÖ¼® ºí·ÏÀº ÁßøµÉ ¼ö ¾ø½À´Ï´Ù£®

¿¹

¿¹Á¦ 1: ±âº» ÁÖ¼® ºí·Ï

%{
This is a comment block. It can contain any number of lines
and contain any characters. Its contents are ignored by Net.Data.
%}

¿¹Á¦ 2: FUNCTION ºí·ÏÀÇ ÁÖ¼®

%function(DTW_REXX) getAddress(IN  name,   %{ customer name %}
                               IN  phone,  %{ customer phone number %}
                               OUT address %{ customer address %}
                              )
{
     ....
%}

¿¹Á¦ 3: HTML ºí·ÏÀÇ ÁÖ¼®

%html(report) {
 
%{ run the query and save results in a table %}
@myQuery(resultTable)
 
%{ build a form to display a page of data %}
<form method="POST" action="report">
 
%{ send the table to a REXX function to send the data output %}
@displayRows(START_ROW_NUM, submit, resultTable, RPT_MAX_ROWS)
 
%{ pass START_ROW_NUM as a hidden variable to the next invocation %}
<input name="START_ROW_NUM" type="hidden" value="$(START_ROW_NUM)">
 
%{ build the next and previous buttons %}
%if (submit == "both" || submit == "next_only")
  <input name="submit" type="submit" value="next">
%endif
%if (submit == "both" || submit == "prev_only")
  <input name="submit" type="submit" value="previous">
%endif
</form>
%}

¿¹Á¦ 4: DEFINE ºí·ÏÀÇ ÁÖ¼®

%define {
   START_ROW_NUM = "1"        %{ starting row number for output table %}
   RPT_MAX_ROWS = "25"        %{ maximum number of rows in the table  %}
   resultTable = %table       %{ table to hold query results          %}
%}

DEFINE ºí·Ï ¶Ç´Â ¸í·É¹®

¸ñÀû

DEFINE ÀýÀº ¸ÅÅ©·ÎÀÇ ¼±¾ð ºÎºÐ¿¡ º¯¼ö¸íÀ» Á¤ÀÇÇÏ¸ç ¸í·É¹®À̳ª ºí·ÏÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù£®

º¯¼ö´Â Å« µû¿ÈÇ¥("")¸¦ »ç¿ëÇÏ¿© ÇÑ Çà¿¡ Á¤ÀÇÇÒ ¼öµµ ÀÖ°í, Áß°ýÈ£¿Í ÆÛ¼¾Æ® ±âÈ£({ %})¸¦ »ç¿ëÇÏ¿© ¿©·¯ ÁÙ¿¡ Á¤ÀÇÇÒ ¼öµµ ÀÖ½À´Ï´Ù£® º¯¼ö°¡ Á¤ÀÇµÇ¸é ¸ÅÅ©·ÎÀÇ ¾î¶² À§Ä¡¿¡¼­µµ À̸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ½À´Ï´Ù£®

±¸¹®

>>-%DEFINE----+-| define entry |---------------------------+---><
              '- {--+------------------------------+---%}--'
                    |  .------------------------.  |
                    |  V                        |  |
                    '----+-define entry------+--+--'
                         '-include statement-'
 
define entry
 
                             .--------------------------.
                             V                          |
|---+-variable name--=--+-"-----+--------------------+--+---"----+-+->
    |                   |       +-string-------------+           | |
    |                   |       +-variable reference-+           | |
    |                   |       '-function call------'           | |
    |                   |     .--------------------------.       | |
    |                   |     V                          |       | |
    |                   +- {-----+--------------------+--+---%}--+ |
    |                   |        +-string-------------+          | |
    |                   |        +-variable reference-+          | |
    |                   |        +-function call------+          | |
    |                   |        '-new_line-----------'          | |
    |                   +-exec statement-------------------------+ |
    |                   +-table statement------------------------+ |
    |                   +-envvar statement-----------------------+ |
    |                   +-| conditional variable |---------------+ |
    |                   '-| abbreviated conditional variable |---' |
    '-list statement-----------------------------------------------'
 
>---------------------------------------------------------------|
 
conditional variable
 
|---+----------------+--?--------------------------------------->
    '-variable name--'
 
           .--------------------------.
           V                          |
>-----+-"-----+--------------------+--+---"----+---------------->
      |       +-string-------------+           |
      |       +-variable reference-+           |
      |       '-function call------'           |
      |     .--------------------------.       |
      |     V                          |       |
      '- {-----+--------------------+--+---%}--'
               +-string-------------+
               +-variable reference-+
               '-function call------'
 
>-----+----------------------------------------------+----------|
      |         .--------------------------.         |
      |         V                          |         |
      '-:--+-"-----+--------------------+--+---"---+-'
           |       +-string-------------+          |
           |       +-variable reference-+          |
           |       '-function call------'          |
           |    .--------------------------.       |
           |    V                          |       |
           '-{-----+--------------------+--+---%}--'
                   +-string-------------+
                   +-variable reference-+
                   '-function call------'
 
abbreviated conditional variable 
 
              .--------------------------.
              V                          |
|---?----+-"-----+--------------------+--+---"----+-------------|
         |       +-string-------------+           |
         |       +-variable reference-+           |
         |       '-function call------'           |
         |     .--------------------------.       |
         |     V                          |       |
         '- {-----+--------------------+--+---%}--'
                  +-string-------------+
                  +-variable reference-+
                  '-function call------'
 

°ª

%DEFINE
º¯¼ö¸¦ Á¤ÀÇÇϴ Ű¿öµå£®

define entry:

variable name
Çϳª ÀÌ»óÀÇ À̸§, Ãß°¡µÇ´Â °¢ À̸§Àº Á¡(.)À¸·Î °áÇյ˴ϴ٣® ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö¸íÀ» Âü°íÇϽʽÿÀ£®

string
¿¬¼ÓµÈ ¿µ¹®ÀÚ¿Í ¼ýÀÚ ¹× ±¸µÎÁ¡£® ¹®ÀÚ¿­ÀÌ Å« µû¿ÈÇ¥·Î ¹­¿© ÀÖÀ¸¸é °³Çà ¹®ÀÚ´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù£®

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù£® ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'£®±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ£®

function call
ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© Net.Data ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù£® ±¸¹® ¹× ¿¹Á¦´Â ÇÔ¼ö È£Ãâ (@)À» Âü°íÇϽʽÿÀ£®

exec statement
EXEC ¸í·É¹®£®º¯¼ö°¡ ÂüÁ¶µÇ°Å³ª ÇÔ¼ö°¡ È£ÃâµÉ ¶§ ½ÇÇàµÇ´Â ¿ÜºÎ ÇÁ·Î±×·¥ÀÇ À̸§£®±¸¹® ¹× ¿¹Á¦´Â EXEC ºí·Ï ¶Ç´Â ¸í·É¹®À» Âü°íÇϽʽÿÀ£®

table statement
TABLE ¸í·É¹®£®µ¿ÀÏÇÑ ·¹ÄÚµå ¹è¿­, Çà ¹× °¢ ÇàÀÇ Çʵ带 ¼³¸íÇÏ´Â Ä÷³ À̸§ÀÇ ¹è¿­ÀÌ Æ÷ÇÔµÈ °ü·Ã ÀÚ·áÀÇ ÁýÇÕÀ» Á¤ÀÇÇÕ´Ï´Ù£® ±¸¹® ¹× ¿¹Á¦¿¡ ´ëÇØ¼­´Â TABLE ¸í·É¹®À» Âü°íÇϽʽÿÀ£®

envvar statement
ENVVAR ¸í·É¹®£®È¯°æ º¯¼ö¸¦ ÂüÁ¶ÇÕ´Ï´Ù£®±¸¹® ¹× ¿¹Á¦´Â ENVVAR ¸í·É¹®À» Âü°íÇϽʽÿÀ£®

conditional variable
´Ù¸¥ º¯¼ö³ª ¹®ÀÚ¿­ÀÇ °ª¿¡ µû¶ó º¯¼öÀÇ °ªÀ» ¼³Á¤ÇÕ´Ï´Ù£®

abbreviated conditional variable
´Ù¸¥ º¯¼ö³ª ¹®ÀÚ¿­ÀÇ °ª¿¡ µû¶ó º¯¼öÀÇ °ªÀ» ¼³Á¤ÇÕ´Ï´Ù£® ´õ ªÀº ÇüÅÂÀÇ Á¶°Ç º¯¼ö£®

list statement
LIST ¸í·É¹®£®ºÐ¸®µÈ °ª ¸ñ·ÏÀ» ±¸¼ºÇÏ´Â µ¥ »ç¿ëµÇ´Â °ªÀ» Á¤ÀÇÇÕ´Ï´Ù£®±¸¹® ¹× ¿¹Á¦´Â LIST ¸í·É¹®À» Âü°íÇϽʽÿÀ£®

include statement
INCLUDE ¸í·É¹®£®ÆÄÀÏÀ» Àоî Net.Data ¸ÅÅ©·Î¿¡ ÅëÇÕ½Ãŵ´Ï´Ù£®±¸¹® ¹× ¿¹Á¦¿¡ ´ëÇØ¼­´Â INCLUDE ¸í·É¹®À» Âü°íÇϽʽÿÀ£®

¹®¸Æ

DEFINE ºí·Ï ¶Ç´Â ¸í·É¹®Àº Net.Data ¸ÅÅ©·Î¿¡¼­ ¼±¾ð ºÎºÐÀÇ IF ºí·Ï ³»¿¡ ¶Ç´Â ´Ù¸¥ ¸ðµç ºí·Ï ¹Û¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù£®

Á¦ÇÑ

¿¹

¿¹Á¦ 1: ´Ü¼ø º¯¼ö Á¤ÀÇ

%DEFINE var1 = "orders"
%DEFINE var2 = "$(var1).html"

·±Å¸ÀÓ Áß¿¡ º¯¼ö ÂüÁ¶ $(var2) ´Â orders.html·Î ÁöÁ¤µË´Ï´Ù£®

¿¹Á¦ 2: ¹®ÀÚ¿­ ³»ÀÇ ÀÎ¿ë ºÎÈ£

%DEFINE hi = "say ""hello"""
%DEFINE empty = ""

º¯¼ö hi°¡ Ç¥½ÃµÉ ¶§´Â °ª say "hello"°¡ ³ªÅ¸³³´Ï´Ù£®º¯¼ö empty´Â ³Î(NULL)ÀÌ µË´Ï´Ù£®

¿¹Á¦ 3: º¹¼ö º¯¼öÀÇ Á¤ÀÇ

%DEFINE{  DATABASE = "testdb"
          home = "http://www.software.ibm.com"
          SHOWSQL = "YES"
          PI = "3.14150"
%}

¿¹Á¦ 4: º¯¼öÀÇ º¹¼ö Çà Á¤ÀÇ

%DEFINE text = {This variable definition
            spans two lines
%}

¿¹Á¦ 5: ´ÙÀ½ÀÇ Á¶°Ç º¯¼ö ¿¹Á¦´Â º¯¼ö varÀÌ °á°ú °ª¿¡ ³Î(NULL) °ªÀÌ ¾øÀ» ¶§ ÀÎ¿ë ºÎÈ£ ("")·Î ¹­ÀÎ °á°ú °ªÀ» ÃëÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù£®¾Æ·¡ ¿¹Á¦¿¡¼­ $(V)¿Í MyFunc´Â ¸ðµÎ ³Î(NULL) °ªÀ» °á°ú·Î °¡Áú ¼ö ¾ø½À´Ï´Ù£®

%DEFINE var = ? "Hello! $(V)@MyFunc()"
%}

ENVVAR ¸í·É¹®

¸ñÀû

º¯¼ö¸¦ DEFINE ºí·ÏÀÇ È¯°æ º¯¼ö·Î Á¤ÀÇÇÕ´Ï´Ù£® ENVVAR º¯¼ö°¡ ÂüÁ¶µÇ¸é Net.Data´Â °°Àº À̸§À¸·Î ȯ°æ º¯¼öÀÇ ÇöÀç °ªÀ» ¸®ÅÏÇÕ´Ï´Ù£®ÀÌ ¹æ¹ýÀ» »ç¿ëÇÏ¿© ȯ°æ º¯¼ö¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ DTW_GETENV¸¦ »ç¿ëÇÏ´Â °Íº¸´Ù ÈξÀ È¿°úÀûÀÔ´Ï´Ù£® ÀÚ¼¼ÇÑ ³»¿ëÀº DTW_GETENV¸¦ Âü°íÇϽʽÿÀ£®

±¸¹®

>>-%ENVVAR-----------------------------------------------------><
 

¹®¸Æ

ENVVAR¹®Àº DEFINE ºí·ÏÀ̳ª ¸í·É¹® ³»¿¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù£®

°ª

%ENVVAR
DEFINE ºí·Ï¿¡¼­ º¯¼ö¸¦ ȯ°æ º¯¼ö·Î Á¤ÀÇÇϱâ À§ÇÑ Å°¿öµå£®ÀÌ º¯¼ö´Â ¸ÅÅ©·Î ÆÄÀÏ ³»ÀÇ ¸ðµç À§Ä¡¿¡¼­ ȯ°æ º¯¼öÀÇ °ªÀ» °¡Á®¿É´Ï´Ù£®

Á¦ÇÑ

ENVVAR¹®Àº ´Ù¸¥ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù£®

¿¹

¿¹Á¦ 1: ÀÌ ¿¹Á¦¿¡¼­ %ENVVAR´Â ÂüÁ¶µÉ ¶§ À¥ ¼­¹öÀÇ À̸§ÀΠȯ°æ º¯¼ö SERVER_SOFTWARE¿¡ ´ëÇÑ ÇöÀç °ªÀ» ¸®ÅÏÇÏ´Â º¯¼ö¸¦ Á¤ÀÇÇÕ´Ï´Ù£®

%DEFINE SERVER_SOFTWARE = %ENVVAR
 
%HTML(REPORT) {
The server is $(SERVER_SOFTWARE).
%}

EXEC ºí·Ï ¶Ç´Â ¸í·É¹®

¸ñÀû

º¯¼ö¸¦ ÂüÁ¶Çϰųª ÇÔ¼ö¸¦ È£ÃâÇÒ ¶§ ½ÇÇàÇÒ ¿ÜºÎ ÇÁ·Î±×·¥À» ÁöÁ¤ÇÕ´Ï´Ù£®

º¯¼ö°¡ ÂüÁ¶µÇ°Å³ª ÇÔ¼ö°¡ È£ÃâµÉ ¶§, Net.Data´Â ¸ÕÀú Net.Data ÃʱâÈ­ ÆÄÀÏÀÇ EXEC_PATH º¯¼ö¿¡ ÁöÁ¤µÈ µð·ºÅ丮¸¦ °Ë»öÇϰí ÀÌ µð·ºÅ丮¿¡¼­ ãÁö ¸øÇÏ¸é ½Ã½ºÅÛ ½©·Î ½ÇÇà ÆÄÀÏÀÇ À̸§À» Á¦°øÇÕ´Ï´Ù£®

±ÇÇÑ Á¤º¸: À¥ ¼­¹ö°¡ EXEC¹®À̳ª ºí·Ï¿¡¼­ ÂüÁ¶ÇÏ´Â ÆÄÀÏ¿¡ ´ëÇÑ ¾×¼¼½º ±ÇÇÑÀ» °¡Áö´ÂÁö È®ÀÎÇϽʽÿÀ£®ÀÚ¼¼ÇÑ ³»¿ëÀº Net.Data Administration and Programming Guide ÀÇ ±¸¼º Àå¿¡¼­ Net.Data ÆÄÀÏ¿¡ ´ëÇÑ À¥ ¼­¹ö ¾×¼¼½º ±ÇÇÑ ÁöÁ¤¿¡ °üÇÑ ÀýÀ» Âü°íÇϽʽÿÀ£®

EXEC ¸í·É¹®°ú ºí·ÏÀº »ç¿ëµÇ´Â À§Ä¡¿¡ µû¶ó µÎ °³ÀÇ ´Ù¸¥ ¹®¸Æ¿¡ »ç¿ëµÇ°í ¼­·Î ´Ù¸¥ ±¸¹®À» °¡Áý´Ï´Ù£®DEFINE ºí·Ï¿¡¼­´Â EXEC¹®À» »ç¿ëÇϰí FUNCTION ºí·Ï¿¡¼­´Â EXEC ºí·ÏÀ» »ç¿ëÇϽʽÿÀ£®

±¸¹®

DEFINE ºí·Ï¿¡¼­ »ç¿ëµÉ ¶§ EXEC¹® ±¸¹®:

                 .--------------------------.
                 V                          |
>>-%EXEC------"-----+--------------------+--+---"--------------><
                    +-string-------------+
                    +-variable reference-+
                    '-function call------'
 

FUNCTION ºí·Ï¿¡¼­ »ç¿ëµÉ ¶§ EXEC ºí·Ï ±¸¹®:

                  .-------------------------.
                  V                         |
>>-%EXEC------ {----+-string-------------+--+---%}-------------><
                    +-variable reference-+
                    '-function call------'
 

°ª

%EXEC
º¯¼ö°¡ ÂüÁ¶µÇ°Å³ª ÇÔ¼ö°¡ È£ÃâµÉ ¶§ ½ÇÇàµÇ´Â ¿ÜºÎ ÇÁ·Î±×·¥ÀÇ À̸§À» ÁöÁ¤Çϴ Ű¿öµå£®Net.Data°¡ EXEC ¸í·É¹®¿¡ Á¤ÀǵǾî ÀÖ´Â º¯¼ö ÂüÁ¶¸¦ ¸¸³ª¸é, Net.Data´Â EXEC ¸í·É¹®ÀÌ º¯¼ö¿¡ ´ëÇØ ¼±¾ðÇÑ ³»¿ëÀ» ó¸®ÇÕ´Ï´Ù£®

string
¿¬¼ÓµÈ ¿µ¹®ÀÚ¿Í ¼ýÀÚ ¹× ±¸µÎÁ¡. ¹®ÀÚ¿­ÀÌ Å« µû¿ÈÇ¥·Î ¹­¿© ÀÖÀ¸¸é °³Çà ¹®ÀÚ´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù£®

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù£® ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'£®±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ£®

function call
ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© Net.Data ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù£® ±¸¹® ¹× ¿¹Á¦´Â ÇÔ¼ö È£Ãâ (@)À» Âü°íÇϽʽÿÀ£®

¹®¸Æ

EXEC ºí·Ï ¶Ç´Â ¸í·É¹®Àº ´ÙÀ½ ¹®¸Æ¿¡ µé¾î ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù£®

Á¦ÇÑ

EXEC ºí·Ï ¶Ç´Â ¸í·É¹®Àº ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù£®

¿¹

¿¹Á¦ 1: º¯¼ö¿¡¼­ ÂüÁ¶ÇÏ´Â ½ÇÇà ÆÄÀÏ

%DEFINE mycall = %EXEC "MYEXEC.EXE $(empno)"
 
%HTML (report){
<P>Here is the report you requested:
<HR>$(mycall)
%}

ÀÌ ¿¹Á¦´Â º¯¼ö, mycall¸¦ ÂüÁ¶ÇÒ ¶§¸¶´Ù MYEXEC.EXE¸¦ ½ÇÇàÇÕ´Ï´Ù£®

¿¹Á¦ 2: ÇÔ¼ö¿¡¼­ ÂüÁ¶ÇÏ´Â ½ÇÇà ÆÄÀÏ

%FUNCTION(DTW_REXX) my_rexx_pgm(INOUT a, b, IN c, INOUT d){
 %EXEC{ mypgm.cmd this is a test %}
%}

ÀÌ ¿¹Á¦´Â ÇÔ¼ö my_rexx_pgmÀÌ È£ÃâµÉ ¶§ mypgm.cmd¸¦ ½ÇÇàÇÕ´Ï´Ù£®

FUNCTION ºí·Ï

¸ñÀû

Net.Data°¡ ¸ÅÅ©·Î ÆÄÀϷκÎÅÍ È£ÃâÇÏ´Â ¼­ºê·çƾÀ» Á¤ÀÇÇÕ´Ï´Ù£® FUNCTION ºí·ÏÀÇ ½ÇÇà ¸í·É¹®Àº ¾ð¾î ȯ°æ¿¡¼­ Á÷Á¢ ÇØ¼®µÇ´Â ÀζóÀÎ ¸í·É¹®ÀÏ ¼ö ÀÖÀ¸¸ç ¶Ç´Â ¿ÜºÎ ÇÁ·Î±×·¥¿¡ ´ëÇÑ È£ÃâÀ» ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù£®

FUNCTION ºí·Ï¿¡¼­ EXEC ºí·ÏÀ» »ç¿ëÇϸé ÀÌ ºí·ÏÀº FUNCTION ºí·Ï¿¡¼­ À¯ÀÏÇÑ ½ÇÇà ¸í·É¹®À̾î¾ß ÇÕ´Ï´Ù£®¾ð¾î ȯ°æ¿¡ ½ÇÇà ¸í·É¹®À» Á¦°øÇϱâ Àü¿¡ Net.Data´Â ÃʱâÈ­ ÆÄÀÏÀÇ EXEC_PATH ±¸¼º ¸í·É¹®¿¡ ÀÇÇØ °áÁ¤µÇ´Â °æ·Î¸íÀ¸·Î EXEC ºí·Ï ³»ÀÇ ÇÁ·Î±×·¥ÀÇ ÆÄÀϸíÀ» ÷ºÎÇÕ´Ï´Ù£® °á°ú ¹®ÀÚ¿­Àº ½ÇÇàµÉ ¾ð¾î ȯ°æÀ¸·Î Àü¼ÛµË´Ï´Ù£®

¾ð¾î ȯ°æÀÌ EXEC ºí·ÏÀ» ó¸®ÇÏ´Â µ¥ »ç¿ëÇÏ´Â ¹æ¹ýÀº ƯÁ¤ ¾ð¾î ȯ°æ¿¡ Á¿ìµË´Ï´Ù£®REXX, System ¹× Perl Net.Data Á¦°ø ¾ð¾î ȯ°æ¿¡¼­¸¸ EXEC ºí·ÏÀ» Áö¿øÇÕ´Ï´Ù£®

±¸¹®

>>-%FUNCTION--(--lang_env--)--function_name--| parm passing spec |-->
 
     .-;----------------------------------------------.
>----+-| returns spec |-- {--| function body |----%}--+--------><
 
parm passing spec
 
|---(--+-----------------------------+---)----------------------|
       |  .-,---------------------.  |
       |  |      (1)              |  |
       |  V .-IN-------.          |  |
       '----+----------+---name---+--'
            +-OUT------+
            '-INOUT----'
 
return spec
 
|---+----------------------+------------------------------------|
    '-RETURNS--(--name--)--'
 
function body
 
|---+-------------------------------+--------------------------->
    |  .--------------------------. |
    |  V                          | |
    +----inline statement block---+-+
    '-exec block--------------------'
 
>-----+----------------------------------+----------------------|
      +-report block--+----------------+-+
      |               '-message block--' |
      '-message block--+---------------+-'
                       '-report block--'
 

ÁÖ:

  1. »ý·«½Ã ¸Å°³º¯¼ö À¯ÇüÀÎ INÀº ¸Å°³º¯¼ö ¸ñ·Ï ¸Ç ¾Õ¿¡ ÁöÁ¤µÈ ¸Å°³º¯¼ö À¯ÇüÀÌ ¾øÀ» ¶§ Àû¿ëµË´Ï´Ù£® ¸Å°³º¯¼ö À¯ÇüÀÌ ¾ø´Â ¸Å°³º¯¼ö´Â ¸Å°³º¯¼ö ¸ñ·Ï¿¡ °¡Àå ÃÖ±Ù¿¡ ÁöÁ¤µÈ À¯ÇüÀ» »ç¿ëÇϰųª ÁöÁ¤µÈ À¯ÇüÀÌ ¾øÀ» ¶§´Â À¯Çü INÀ» »ç¿ëÇÕ´Ï´Ù£® ¿¹¸¦ µé¾î ¸Å°³º¯¼ö ¸ñ·Ï(parm1, INOUT parm2, parm3, OUT parm4, parm5)¿¡¼­ ¸Å°³º¯¼ö parm1, parm3 ¹× parm5´Â ¸Å°³º¯¼ö À¯ÇüÀ» °¡ÁöÁö ¾Ê½À´Ï´Ù£®¸Å°³º¯¼ö parm1Àº Ãʱ⠸Ű³º¯¼ö À¯ÇüÀÌ ÁöÁ¤µÇÁö ¾Ê¾ÒÀ¸¹Ç·Î À¯Çü INÀ» °¡Áý´Ï´Ù£® ¸Å°³º¯¼ö parm3Àº °¡Àå ÃÖ±Ù¿¡ ÁöÁ¤µÈ ¸Å°³º¯¼ö À¯ÇüÀÎ INOUTÀ» °¡Áý´Ï´Ù£®ÀÌ¿Í ¸¶Âù°¡Áö·Î ¸Å°³º¯¼ö parm5´Â À¯Çü OUTÀÌ ¸Å°³º¯¼ö ¸ñ·Ï¿¡¼­ °¡Àå ÃÖ±Ù¿¡ ÁöÁ¤µÈ À¯ÇüÀ̹ǷΠÀÌ À¯ÇüÀ» °¡Áý´Ï´Ù£®

°ª

%FUNCTION
Net.Data´Â ¸ÅÅ©·Î ÆÄÀÏ¿¡¼­ È£ÃâÇÏ´Â ¼­ºê·çƾÀ» ÁöÁ¤Çϴ Ű¿öµå£®

lang_env
ÇÔ¼ö ³»¿ëÀ» ó¸®ÇÏ´Â ¾ð¾î ȯ°æ£® ÀÚ¼¼ÇÑ ³»¿ëÀº Net.Data Language Environment Reference¸¦ Âü°íÇϽʽÿÀ£®

function_name
¿µ¹®ÀÚ³ª ¹ØÁÙ·Î ½ÃÀÛÇÏ¸ç ¿µ¹®ÀÚ, ¼ýÀÚ ¶Ç´Â ¹ØÁÙ µîÀÌ Á¶ÇÕµÇ¾î Æ÷ÇԵǴ ¿µ¹®ÀÚ³ª ¼ýÀÚ ¹®ÀÚ¿­ÀÌ µÉ ¼ö ÀÖ´Â ÇÔ¼ö À̸§£®

name
¿µ¹®ÀÚ ¶Ç´Â ¹ØÁÙ·Î ½ÃÀÛÇÏ´Â ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ¿­·Î, ¿µ¹®ÀÚ, ¼ýÀÚ ¶Ç´Â ¹ØÁÙ·Î ÀÌ·ç¾îÁø ¸ðµç Á¶ÇÕÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù£®

¸Å°³º¯¼ö Á¦°ø ½ºÆå:

IN
Net.Data°¡ ¾ð¾î ȯ°æÀ¸·Î ÀÔ·Â ÀڷḦ Á¦°øÇϵµ·Ï ÁöÁ¤ÇÕ´Ï´Ù£® INÀÌ »ý·«½Ã °ªÀÔ´Ï´Ù£®

OUT
¾ð¾î ȯ°æÀÌ Net.Data·Î Ãâ·Â ÀڷḦ ¸®ÅÏÇϵµ·Ï ÁöÁ¤ÇÕ´Ï´Ù£®

INOUT
Net.Data°¡ ¾ð¾î ȯ°æ¿¡ ÀÔ·Â ÀڷḦ Á¦°øÇÏ°í ¾ð¾î ȯ°æÀº Net.Data·Î Ãâ·Â ÀڷḦ ¸®ÅÏÇϵµ·Ï ÁöÁ¤ÇÕ´Ï´Ù£®

¸®ÅÏ ½ºÆå:

RETURNS
ÇÔ¼ö°¡ ¿Ï·áµÈ ÈÄ¿¡ ¾ð¾î ȯ°æ¿¡ ÀÇÇØ ÁöÁ¤µÈ ÇÔ¼ö °ªÀ» Æ÷ÇÔÇÏ´Â º¯¼ö¸¦ ¼±¾ðÇÕ´Ï´Ù£®

ÇÔ¼ö ³»¿ë:

ÀζóÀÎ ¸í·É¹® ºí·Ï
ÇÔ¼ö Á¤ÀÇ¿¡ ÁöÁ¤µÈ ¾ð¾î ȯ°æ(¿¹: REXX, SQL ¶Ç´Â Perl) ¿¡¼­ °¡Á®¿Â ±¸¹®ÀÌ À¯È¿ÇÑ ¸í·É¹®£®»ç¿ë ÁßÀÎ ¾ð¾î ȯ°æ¿¡ ´ëÇÑ ¼³¸íÀº Net.Data Language Environment Reference ¸¦ Âü°íÇϽʽÿÀ£®±¸¹® ¹× »ç¿ë¿¡ ´ëÇØ¼­´Â ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ÇÁ·Î±×·¡¹Ö ÂüÁ¶¼­¸¦ Âü°íÇϽʽÿÀ£®ÀζóÀÎ ¸í·É¹® ºí·ÏÀ» ³ªÅ¸³»´Â ¹®ÀÚ¿­Àº ÀζóÀÎ ¸í·É¹® ºí·Ï(ÇÁ·Î±×·¥)ÀÇ ½ÇÇà ÀÌÀü¿¡ ÁøÇàµÇ´Â Net.Data º¯¼ö ÂüÁ¶ ¹× ÇÔ¼ö È£ÃâÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù£®Á¦ÇÑ»çÇ×: Net.Data º¯¼ö ÂüÁ¶ ¶Ç´Â ÇÔ¼ö È£ÃâÀ» Æ÷ÇÔÇÏÁö ¾Ê´Â °¡Àå ±ä ¿¬¼Ó ÀζóÀÎ ¸í·É¹® ºí·Ï ¹®ÀÚ¿­Àº ´ÙÀ½ ±æÀÌ·Î Á¦Çѵ˴ϴ٣®

  • OS/2 ¹× NTÀÇ °æ¿ì: 64KB

  • AIXÀÇ °æ¿ì: 256KB

  • OS/390ÀÇ °æ¿ì: 256KB

  • OS/400ÀÇ °æ¿ì: 256KB

exec block
EXEC ºí·Ï£®º¯¼ö°¡ ÂüÁ¶µÇ°Å³ª ÇÔ¼ö°¡ È£ÃâµÉ ¶§ ½ÇÇàµÇ´Â ¿ÜºÎ ÇÁ·Î±×·¥ÀÇ À̸§£®±¸¹® ¹× ¿¹Á¦´Â EXEC ºí·Ï ¶Ç´Â ¸í·É¹®À» Âü°íÇϽʽÿÀ£®

report block
REPORT ºí·Ï£®ÇÔ¼ö È£ÃâÀÇ Ãâ·Â¿¡ ´ëÇÑ Æ÷¸ËÆÃ Áöħ£®º¸°í¼­¿¡ ¸Ó¸®¸» ¹× ²¿¸®¸» Á¤º¸¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù£®±¸¹® ¹× ¿¹Á¦´Â REPORT ºí·ÏÀ» Âü°íÇϽʽÿÀ£®

message block
MESSAGE ºí·Ï£®¸®ÅÏ ÄÚµå ¼¼Æ®, ¿¬°üµÈ ¸Þ¼¼Áö, ÇÔ¼ö È£ÃâÀÌ ¸®Å쵃 ¶§ Net.Data°¡ ÃëÇÏ´Â Á¶Ä¡£®±¸¹® ¹× ¿¹Á¦´Â MESSAGE ºí·ÏÀ» Âü°íÇϽʽÿÀ£®

¹®¸Æ

FUNCTION ºí·ÏÀº ´ÙÀ½ ¹®¸Æ¿¡ µé¾î ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù£®

Á¦ÇÑ

FUNCTION ºí·ÏÀº ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù£®

REXX, System ¹× Perl Net.Data Á¦°ø ¾ð¾î ȯ°æ¿¡¼­¸¸ EXEC ¸í·É¹®À» Áö¿øÇÕ´Ï´Ù£®

¿¹

´ÙÀ½ ¿¹Á¦´Â ¹ü¿ë ¿¹Á¦·Î, ¸ðµç ¾ð¾î ȯ°æ¿¡ Àû¿ëµÇÁö´Â ¾Ê½À´Ï´Ù£® ƯÁ¤ ¾ð¾î ȯ°æ¿¡¼­ FUNCTION ºí·ÏÀ» »ç¿ëÇÏ´Â °Í¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº Net.Data Language Environment Reference¸¦ Âü°íÇϽʽÿÀ£®

¿¹Á¦ 1: REXX ºÎ¼Ó ¹®ÀÚ¿­ ÇÔ¼ö

%DEFINE lstring = "longstring"
%FUNCTION(DTW_REXX) substring(IN x, y, z) RETURNS(s) {
  s = substr("$(x)", $(y), $(z));
%}
%DEFINE a = {@substring(lstring, "1", "4")%} %{ assigns "long" to a %}

a°¡ Æò°¡µÇ¸é @substring ÇÔ¼ö È£ÃâÀÌ ¹ß°ßµÇ°í ºÎ¼Ó ¹®ÀÚ¿­ FUNCTION ºí·ÏÀÌ ½ÇÇàµË´Ï´Ù£®FUNCTION ºí·ÏÀÇ ½ÇÇà ¸í·É¹®¿¡¼­ º¯¼ö°¡ ´ëüµÇ¸é ÅØ½ºÆ® ¹®ÀÚ¿­ s = substr("longstring", 1, 4)°¡ REXX ÇØ¼®±â·Î Á¦°øµÇ¾î ½ÇÇàµË´Ï´Ù£®RETURNS ÀýÀÌ ÁöÁ¤µÇ¾úÀ¸¹Ç·Î aÀÇ Æò°¡¿¡¼­ @substring ÇÔ¼ö È£Ãâ °ªÀº "long", °ª s·Î ´ëüµË´Ï´Ù£®

¿¹Á¦ 2: ¿ÜºÎ REXX ÇÁ·Î±×·¥ È£Ãâ

EXEC¹®Àº REXX ÇØ¼®±â°¡ ¿ÜºÎ REXX ÇÁ·Î±×·¥ mypgm.cmd¸¦ ½ÇÇàÇϵµ·Ï REXX ¾ð¾î ȯ°æ¿¡ Áö½ÃÇÕ´Ï´Ù£®REXX ¾ð¾î ȯ°æÀº REXX ÇÁ·Î±×·¥°ú Á÷Á¢ Net.Data º¯¼ö¸¦ °øÀ¯ÇÒ ¼ö ÀÖÀ¸¹Ç·Î ÀÌ ¾ð¾î ȯ°æÀº mypgm.cmdÀ» ½ÇÇàÇϱâ Àü¿¡ REXX º¯¼ö a£¬ b ¹× c¸¦ Net.Data º¯¼ö°ªÀÎ w£¬ x ¹× y·Î ÁöÁ¤ÇÕ´Ï´Ù£® mypgm.cmd´Â REXX ¸í·É¹®¿¡¼­ º¯¼ö a£¬ b ¹× c¸¦ Á÷Á¢ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù£®ÀÌ ÇÁ·Î±×·¥ÀÌ Á¾·áµÇ¸é REXX º¯¼ö a£¬ b ¹× d´Â REXX ÇÁ·Î±×·¥À¸·ÎºÎÅÍ °Ë»öµÇ¸ç ±× °ªµéÀº Net.Data º¯¼ö w£¬ x ¹× z·Î ÁöÁ¤µË´Ï´Ù£® RETURNS ÀýÀÌ my_rexx_pgm FUNCTION ºí·ÏÀÇ Á¤ÀÇ¿¡¼­ »ç¿ëµÇÁö ¾ÊÀ¸¹Ç·Î @my_rexx_pgm ÇÔ¼ö È£ÃâÀÇ °ªÀº ³Î(NULL) ¹®ÀÚ¿­ÀÌ µÇ°Å³ª (¸®ÅÏ Äڵ尡 0ÀÌ¾Æ´Ñ °æ¿ì) REXX ÇÁ·Î±×·¥ ¸®ÅÏ ÄÚµå °ªÀÌ µË´Ï´Ù£®

¿¹Á¦ 3: SQL Á¶È¸ ¹× º¸°í¼­

%FUNCTION(DTW_SQL) query_1(IN x, IN y) {
   SELECT customer.num, order.num, part.num, status
   FROM customer, order, shippingpart
   WHERE customer.num = '$(x)'
      AND customer.ordernumber = order.num
      AND order.num = '$(y)'
      AND order.partnumber = part.num
%REPORT{
     <P>Here is the status of your order:
     <P>$(NLIST)
     <UL>
%ROW{
       <LI>$(V1)  $(V2)  $(V3)  $(V4)
     %}
     </UL>
        %}
%}
%DEFINE customer_name="IBM"
%DEFINE customer_order="12345"
%HTML(REPORT) {
  @query_1(customer_name, customer_order)
%}

@query_1 ÇÔ¼ö È£ÃâÀº SELECT¹®¿¡¼­ $(x)¸¦ IBMÀ¸·Î, $(y)¸¦ 12345·Î ´ëüÇÕ´Ï´Ù£®SQL ÇÔ¼ö Á¤ÀÇ query_1ÀÌ Ãâ·Â Å×ÀÌºí º¯¼ö¸¦ ½Äº°ÇÏÁö ¸øÇϹǷΠ»ý·«½Ã Å×À̺íÀÌ »ç¿ëµË´Ï´Ù (ÀÚ¼¼ÇÑ ³»¿ëÀº TABLE º¯¼ö ºí·ÏÀ» Âü°íÇϽʽÿÀ)£® REPORT ºí·Ï¿¡¼­ ÂüÁ¶µÇ´Â NLIST ¹× Vi º¯¼ö´Â »ý·«½Ã Å×À̺í Á¤ÀÇ¿¡ ÀÇÇØ Á¤Àǵ˴ϴ٣®REPORT ºí·Ï¿¡¼­ »ý¼ºÇÑ º¸°í¼­´Â query_1 ÇÔ¼ö°¡ È£ÃâµÇ´Â Ãâ·Â HTML¿¡ ¹èÄ¡µË´Ï´Ù£®

¿¹Á¦ 4: Perl ½ºÅ©¸³Æ®¸¦ ½ÇÇàÇϱâ À§ÇÑ ½Ã½ºÅÛ È£Ã⣮

System ¾ð¾î ȯ°æÀº FUNCTION ºí·Ï³»ÀÇ ½ÇÇà ¸í·É¹®À» C ¾ð¾î system() ÇÔ¼ö È£ÃâÀ» ÅëÇØ ¿î¿µÃ¼Á¦·Î Àü´ÞÇÏ¿© ÇØ¼®ÇÕ´Ï´Ù£®ÀÌ ¹æ¹ýÀº Net.Data º¯¼ö¸¦ REXX ¾ð¾î ȯ°æÀÌ ÇÏ´Â °Íó·³ ½ÇÇà ¸í·É¹®À¸·Î Á÷Á¢ Àü´ÞÇϰųª °Ë»öÇÏÁö ¾Êµµ·Ï ÇÕ´Ï´Ù£®µû¶ó¼­, System ¾ð¾î ȯ°æÀº ´ÙÀ½°ú °°Àº ¹æ½ÄÀ¸·Î º¯¼ö¸¦ Àü´Þ ¹× °Ë»öÇÕ´Ï´Ù£®

@today ÇÔ¼ö È£ÃâÀÌ ¹ß°ßµÇ¸é Net.Data´Â ½ÇÇà ¸í·É¹®¿¡¼­ º¯¼ö ´ëü¸¦ ¼öÇàÇÕ´Ï´Ù£®ÀÌ ¿¹Á¦¿¡¼­´Â ½ÇÇà ¸í·É¹®¿¡ Net.Data º¯¼ö°¡ ¾øÀ¸¹Ç·Î, ¾î¶°ÇÑ º¯¼ö ´ëüµµ ¼öÇàµÇÁö ¾Ê½À´Ï´Ù£®½ÇÇà ¸í·É¹®°ú ¸Å°³º¯¼ö°¡ System ¾ð¾î ȯ°æÀ¸·Î Àü´ÞµÇ¸é, ¾ð¾î ȯ°æÀº ¸í¸íµÈ ÆÄÀÌÇÁ¸¦ ÀÛ¼ºÇϰí ȯ°æ º¯¼ö DTWPIPE¸¦ ÆÄÀÌÇÁ À̸§À¸·Î ¼³Á¤ÇÕ´Ï´Ù£®

±×·± ´ÙÀ½, ¿ÜºÎ ÇÁ·Î±×·¥ÀÌ C system() ÇÔ¼ö È£ÃâÀ» »ç¿ëÇÏ¿© È£ÃâµË´Ï´Ù£® ¿ÜºÎ ÇÁ·Î±×·¥Àº ÆÄÀÌÇÁ¸¦ ¾²±â Àü¿ëÀ¸·Î ¿­°í Ç¥ÁØ ½ºÆ®¸² ÆÄÀÏÀÎ °Íó·³ Ãâ·Â ¸Å°³º¯¼öÀÇ °ªÀ» ÆÄÀÌÇÁ¿¡ ±â·ÏÇÕ´Ï´Ù£®¿ÜºÎ ÇÁ·Î±×·¥Àº STDOUT¿¡ ±â·ÏÇÏ¿© HTML Ãâ·ÂÀ» »ý¼ºÇÕ´Ï´Ù£®ÀÌ ¿¹Á¦¿¡¼­, ½Ã½ºÅÛ ³¯Â¥ ÇÁ·Î±×·¥ÀÇ Ãâ·ÂÀº FUNCTION ºí·ÏÀÇ RETURNS Àý¿¡¼­ ½Äº°µÇ´Â º¯¼öÀÎ result¿¡ ÁöÁ¤µË´Ï´Ù£® ÀÌ °á°ú º¯¼ö °ªÀº HTML ºí·Ï¿¡¼­ @today() ÇÔ¼ö È£ÃâÀ» ´ë½ÅÇÕ´Ï´Ù£®

¿¹Á¦ 5: Perl ¾ð¾î ȯ°æ

%FUNCTION(DTW_PERL) today() RETURNS(result) {
  $date = `date`;
  chop $date;
  open(DTW, "> $ENV{DTWPIPE}") || die "Could not open: $!";
  print DTW "result = \"$date\"\n";
%}
%HTML(INPUT) {
  @today()
%}

EXEC ºí·ÏÀÌ »ç¿ëµÇ´Â ¹æ½ÄÀ» º¸·Á¸é ¿¹Á¦ 4¿Í ÀÌ ¿¹Á¦¸¦ ºñ±³ÇØ º¸½Ê½Ã¿À. ¿¹Á¦ 4¿¡¼­, ½Ã½ºÅÛ ¾ð¾î ȯ°æÀº Perl ÇÁ·Î±×·¥ ÇØ¼® ¹æ¹ýÀ» ¾ËÁö ¸øÇÏÁö¸¸ ¿ÜºÎ ÇÁ·Î±×·¥À» È£ÃâÇÏ´Â ¹æ¹ýÀ» ¾Ë°í ÀÖ½À´Ï´Ù. EXEC ºí·ÏÀº perlÀ̶ó´Â ÇÁ·Î±×·¥À» ¿ÜºÎ ÇÁ·Î±×·¥À¸·Î È£ÃâÇϵµ·Ï Áö½ÃÇÕ´Ï´Ù. ½ÇÁ¦ Perl ¾ð¾î ¸í·É¹®Àº ¿ÜºÎ Perl ÇÁ·Î±×·¥¿¡ ÀÇÇØ ÇØ¼®µË´Ï´Ù. ¿¹Á¦ 5´Â Perl ¾ð¾î ȯ°æÀÌ Perl ¾ð¾î ¸í·É¹®À» Á÷Á¢ ÇØ¼®ÇÒ ¼ö ÀÖÀ¸¹Ç·Î EXEC ºí·ÏÀ» Æ÷ÇÔÇÏÁö ¾Ê½À´Ï´Ù.

ÇÔ¼ö È£Ãâ (@)

¸ñÀû

ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ÇÔ¼ö°¡ ³»Àå ÇÔ¼ö°¡ ¾Æ´Ï¸é ÇÔ¼ö È£ÃâÀ» ÁöÁ¤Çϱâ Àü¿¡ À̸¦ Net.Data ¸ÅÅ©·Î¿¡ ¹Ì¸® Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù.

±¸¹®

>>-@function_name---(----+------------------------------+--)---><
                         |  .-,-----------------------. |
                         |  V                         | |
                         '----+-variable_name------+--+-'
                              +-"--string--"-------+
                              +-variable reference-+
                              '-function call------'
 

°ª

@function_name
ÀÓÀÇÀÇ ±âÁ¸ ÇÔ¼ö À̸§. ¿µ¹®ÀÚ ¶Ç´Â ¹ØÁÙ·Î ½ÃÀÛÇÏ´Â ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ¿­·Î, ¿µ¹®ÀÚ, ¼ýÀÚ ¶Ç´Â ¹ØÁÙ·Î ÀÌ·ç¾îÁø ¸ðµç Á¶ÇÕÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

variable name
Çϳª ÀÌ»óÀÇ À̸§, Ãß°¡µÇ´Â °¢ À̸§Àº Á¡(.)À¸·Î °áÇյ˴ϴÙ. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö¸íÀ» Âü°íÇϽʽÿÀ.

string
°³Çà ¹®ÀÚ¸¦ Á¦¿ÜÇÑ ¿¬¼ÓµÈ ¿µ¹®ÀÚ, ¼ýÀÚ ¹× ±¸µÎÁ¡.

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ.

function call
ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© Net.Data ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù.

¹®¸Æ

ÇÔ¼ö È£ÃâÀº ´ÙÀ½ ¹®¸Æ¿¡ µé¾î ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

¿¹

¿¹Á¦ 1: SQL ÇÔ¼ö formQuery È£Ãâ

%FUNCTION(DTW_SQL) formQuery(){
SELECT $(queryVal) from $(tableName)
%}
 
%HTML (input){
<P>Which columns of $(tableName) do you want to see?
<FORM METHOD="POST" ACTION="report">
<INPUT NAME="queryVal" TYPE="CHECKBOX" VALUE="NAME">Name
<INPUT NAME="queryVal" TYPE="CHECKBOX" VALUE="MAIL">E-mail
<INPUT NAME="queryVal" TYPE="CHECKBOX" VALUE="FAX">FAX
<INPUT TYPE="SUBMIT" VALUE="Submit request">
%}
 
%HTML (report){
<P>Here are the columns you selected:
<HR>@formQuery()
%}

¿¹Á¦ 2: ÀÔÃâ·Â ¸Å°³º¯¼ö¸¦ »ç¿ëÇÑ REXX ÇÔ¼ö È£Ãâ

%FUNCTION(DTW_REXX) my_rexx_pgm(INOUT a, b, IN c, OUT d) {
 %EXEC{ mypgm.cmd this is a test %}
%}
%HTML(INPUT) {
 <P> Original variable values: $(w) $(x) $(z)
 <P> @my_rexx_pgm(w, x, y, z)
 <P> Modified variable values: $(w) $(x) $(z)
%}

¿¹Á¦ 3: º¯¼ö ÂüÁ¶¿Í ÇÔ¼ö È£ÃâÀ» »ç¿ëÇÏ¿© ÀÔ·Â ¸Å°³º¯¼ö¸¦ ÅëÇÑ REXX ÇÔ¼ö È£Ãâ

%FUNCTION(DTW_REXX) my_rexx_pgm(IN a, b, c, d, OUT e) {
  ...
%}
%HTML(INPUT){
 <p>  @my_rexx_pgm($(myA), @getB(), @retrieveC(), $(myD), myE)
%}

HTML ºí·Ï

¸ñÀû

HTMLÀ» ÀÌÇØÇϴ Ŭ¶óÀ̾ðÆ®ÀÇ À¥ ºê¶ó¿ìÀú³ª Åø¿¡ ÀÇÇØ ó¸®µÉ HTML ű׳ª ÅØ½ºÆ®¸¦ Æ÷ÇÔÇÕ´Ï´Ù. ¶ÇÇÑ HTML ºí·ÏÀº ¼öÇà ½Ã¿¡ Æò°¡µÇ°í ½ÇÇàµÇ´Â ´ëºÎºÐÀÇ Net.Data ¸ÅÅ©·Î ¾ð¾î ¸í·É¹®À» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. Net.Data´Â Net.Data ¸ÅÅ©·Î ¸í·É¹®À» ã¾Æ ½ÇÇàÇÕ´Ï´Ù. Net.Data´Â ´Ù¸¥ ¸ðµç ÅØ½ºÆ®¸¦ HTML·Î °¡Á¤Çϰí À̸¦ À¥ ºê¶ó¿ìÀú·Î º¸³À´Ï´Ù.

±¸¹®

>>-%HTML----(--name--)------------------------------------------>
 
         .-----------------------------.
         V                             |
>-----{-----+-----------------------+--+---%}------------------><
            +-exec_sql statement----+
            +-variable reference----+
            +-if block--------------+
            +-function call---------+
            +-HTML statement--------+
            +-include statement-----+
            +-include_url statement-+
            '-while block-----------'
 

°ª

%HTML
Ŭ¶óÀ̾ðÆ®ÀÇ À¥ ºê¶ó¿ìÁ®¿¡ Ç¥½ÃµÉ HTML ÅÂ±× ¹× ¿ø¹®ÀÌ µé¾î ÀÖ´Â ºí·ÏÀ» ÁöÁ¤Çϴ Ű¿öµå.

name
¿µ¹®ÀÚ ¶Ç´Â ¹ØÁÙ·Î ½ÃÀÛÇÏ´Â ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ¿­·Î, ¿µ¹®ÀÚ, ¼ýÀÚ ¶Ç´Â ¹ØÁÙ·Î ÀÌ·ç¾îÁø ¸ðµç Á¶ÇÕÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

exec_sql statement
ȣȯ¼ºÀ» À§ÇØ Áö¿øµÇ´Â DB2WWW ¸±¸®½º 1 ¾ð¾î ¿ä¼Ò. ºÎ·Ï A. DB2 WWW ¿¬°á ¶Ç´Â DB2 ¿ùµå ¿ÍÀ̵å À¥ ¸±¸®½º 1 ¼³¸í¼­¸¦ Âü°íÇϽʽÿÀ.

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ.

IF block
IF ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮸¦ ¼öÇàÇÕ´Ï´Ù. Á¶°Ç ¸ñ·ÏÀÇ ¹®ÀÚ¿­ °ªÀº Á¤¼ö¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÌ¸ç ½ÃÀÛ ¶Ç´Â ³¡ °ø¹éÀÌ ¾ø´Â °æ¿ì ºñ±³Çϱâ À§ÇØ ¼ýÀÚ·Î Ãë±ÞÇÕ´Ï´Ù. ÀÌµé °ªÀº ÇϳªÀÇ ´õÇϱâ (+) ¶Ç´Â »©±â (-) ºÎÈ£·Î ½ÃÀÛµÉ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â IF ºí·ÏÀ» Âü°íÇϽʽÿÀ.

function call
ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© Net.Data ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â ÇÔ¼ö È£Ãâ (@)À» Âü°íÇϽʽÿÀ.

HTML statements
Ŭ¶óÀÌ¾ðÆ® ºê¶ó¿ìÀú¿ëÀ¸·Î Çü½ÄÀÌ ÁöÁ¤µÉ HTML ÅÂ±×¿Í ÇÔ²² ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

include statement
INCLUDE ¸í·É¹®. ÆÄÀÏÀ» Àоî Net.Data ¸ÅÅ©·Î¿¡ ÅëÇÕ½Ãŵ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â INCLUDE ¸í·É¹®À» Âü°íÇϽʽÿÀ.

include_url statement
INCLUDE_URL ¸í·É¹®. ´Ù¸¥ ÆÄÀÏÀ» ÀÐ¾î ¸í·É¹®ÀÌ ÁöÁ¤µÈ Net.Data Web ¸ÅÅ©·Î¿¡ ÅëÇÕ½Ãŵ´Ï´Ù. ÁöÁ¤µÈ ÆÄÀÏÀº ±¹Áö ¶Ç´Â ¿ø°Ý ¼­¹ö¿¡ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â INCLUDE_URL ¸í·É¹®À» Âü°íÇϽʽÿÀ.

while block
WHILE ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮿¡¼­ ·çÇÎÀ» ¼öÇàÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â WHILE ºí·ÏÀ» Âü°íÇϽʽÿÀ.

¹®¸Æ

HTML ºí·ÏÀº ´ÙÀ½ ¹®¸Æ¿¡ µé¾î ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

HTML ºí·ÏÀº ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹

¿¹Á¦ 1: ¸Ó¸®¸» ¹× ²¿¸®¸»¿¡ ´ëÇÑ Æ÷ÇÔ ÆÄÀÏÀ» °¡Áö´Â HTML ºí·Ï

%HTML(example1){
%INCLUDE"header.html"
<P>You can put <EM>any</EM> HTML in an HTML block.
An SQL function call is made like this:
@xmp1()
%INCLUDE"footer.html"
%}

IF ºí·Ï

¸ñÀû

Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮸¦ ¼öÇàÇÕ´Ï´Ù. IF ºí·ÏÀº Çϳª ÀÌ»óÀÇ Á¶°ÇÀ» Å×½ºÆ®Çϰí Á¶°Ç Å×½ºÆ®ÀÇ Ãâ·ÂÀ» ±âÃÊ·Î ¸í·É¹® ºí·ÏÀ» ¼öÇàÇÒ ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù. Net.Data ¸ÅÅ©·Î, HTML ºí·Ï, MACRO_FUNCTION ºí·Ï, REPORT ºí·Ï, WHILE ºí·Ï ¹× ROW ºí·ÏÀÇ ¼±¾ð ºÎºÐ¿¡ IP ºí·ÏÀ» »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç À̸¦ ´Ù¸¥ IF ºí·Ï¿¡ ÁßøÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

Á¶°Ç ¸ñ·ÏÀÇ ¹®ÀÚ¿­ °ªÀº Á¤¼ö¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÌ¸ç ½ÃÀÛ ¶Ç´Â ³¡ °ø¹éÀÌ ¾ø´Â °æ¿ì ºñ±³¸¦ À§ÇØ ¼ýÀÚ·Î Ãë±ÞÇÕ´Ï´Ù. ÀÌµé °ªÀº ÇϳªÀÇ ´õÇϱâ (+) ¶Ç´Â »©±â (-) ºÎÈ£·Î ½ÃÀÛµÉ ¼ö ÀÖ½À´Ï´Ù.

ÁßøµÈ IF ºí·Ï: IF ºí·Ï ±¸¹®¿¡ ´ëÇÑ ±ÔÄ¢Àº ¸ÅÅ©·Î ÆÄÀÏ¿¡¼­ ÀÌ ºí·ÏÀÇ À§Ä¡¿¡ ÀÇÇØ Á¿ìµË´Ï´Ù. IF ºí·ÏÀÌ ¼±¾ð ºÎºÐÀÇ ´Ù¸¥ ºí·Ï ¿ÜºÎ¿¡ ÀÖ´Â IF ºí·Ï ³»¿¡ ÁßøµÇ¸é ÀÌ ºí·ÏÀº ¿ÜºÎ ºí·ÏÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ðµç ¿ä¼Ò¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. IF ºí·ÏÀÌ IF ºí·Ï¿¡ ÀÖÁö ¾ÊÀº ´Ù¸¥ ºí·Ï ³»¿¡ ÁßøµÇ¸é ÀÌ ºí·ÏÀÌ ÁßøµÈ ºí·Ï¿¡ ´ëÇÑ ±¸¹® ±ÔÄ¢À» ÃëÇÕ´Ï´Ù.

´ÙÀ½ ¿¹Á¦¿¡¼­ ÁßøµÈ IF ºí·ÏÀº HTML ºí·Ï³»¿¡ ÀÖÀ» ¶§ »ç¿ëµÇ´Â ±ÔÄ¢À» µû¶ó¾ß ÇÕ´Ï´Ù.

     %IF block
...
  %HTML block
...
     %IF block

ÀÌ Àý µÞºÎºÐ¿¡ ³ª¿­µÈ Á¦ÇÑ»çÇ×À» Âü°íÇϽʽÿÀ.

±¸¹®

>>-%IF--| condition list |-------------------------------------->
 
      .---------------------------------.
      V                                 |
>--------+---------------------------+--+----------------------->
         |              (1)          |
         +-define block--------------+
         |                  (1)      |
         +-define statement----------+
         |                    (2)    |
         +-exec_sql statement--------+
         |                (1)        |
         +-function block------------+
         +-function call-------------+
         |            (1)            |
         +-HTML block----------------+
         |                (2)        |
         +-HTML statement------------+
         +-if block------------------+
         +-include statement---------+
         +-include_url statement-----+
         |                      (1)  |
         +-macro_function block------+
         |               (1)         |
         +-message block-------------+
         |        (2)                |
         +-string--------------------+
         |                    (2)    |
         +-variable reference--------+
         |             (2)           |
         '-while block---------------'
 
>-----| else_if spec |--%ENDIF---------------------------------><
 
condition list
 
|---(--+-(--condition list--)----------------+---)--------------|
       +-condition list--&&--condition list--+
       +-condition list--||--condition list--+
       +-!--condition list-------------------+
       +-| condition |-----------------------+
       '-| term |----------------------------'
 
condition
 
|---term--+-<--+---term-----------------------------------------|
          +->--+
          +-<=-+
          +->=-+
          +-!=-+
          '-==-'
 
term
 
|---+-variable reference-+--------------------------------------|
    +-"--string--"-------+
    +-variable name------+
    '-function call------'
 
else_if spec
 
|---+------------------------------------------------------------------------------+->
    |     .-------------------------------------------------------------------.    |
    |     |                              .---------------------------------.  |    |
    |     V                              V                                 |  |    |
    '--+----%ELIF--(--condition_list--)-----+---------------------------+--+--+-+--'
       |                                    |              (1)          |       |
       |                                    +-define block--------------+       |
       |                                    |                  (1)      |       |
       |                                    +-define statement----------+       |
       |                                    |                    (2)    |       |
       |                                    +-exec_sql statement--------+       |
       |                                    |                (1)        |       |
       |                                    +-function block------------+       |
       |                                    +-function call-------------+       |
       |                                    |            (1)            |       |
       |                                    +-HTML block----------------+       |
       |                                    |                (2)        |       |
       |                                    +-HTML statement------------+       |
       |                                    +-if block------------------+       |
       |                                    +-include statement---------+       |
       |                                    +-include_url statement-----+       |
       |                                    |                      (1)  |       |
       |                                    +-macro_function block------+       |
       |                                    |               (1)         |       |
       |                                    +-message block-------------+       |
       |                                    |        (2)                |       |
       |                                    +-string--------------------+       |
       |                                    |                    (2)    |       |
       |                                    +-variable reference--------+       |
       |                                    |             (2)           |       |
       |                                    '-while block---------------'       |
       |        .---------------------------------.                             |
       |        V                                 |                             |
       '-%ELSE-----+---------------------------+--+-----------------------------'
                   |              (1)          |
                   +-define block--------------+
                   |                  (1)      |
                   +-define statement----------+
                   |                    (2)    |
                   +-exec_sql statement--------+
                   |                (1)        |
                   +-function block------------+
                   +-function call-------------+
                   |            (1)            |
                   +-HTML block----------------+
                   |                (2)        |
                   +-HTML statement------------+
                   +-if block------------------+
                   +-include statement---------+
                   +-include_url statement-----+
                   |                      (1)  |
                   +-macro_function block------+
                   |               (1)         |
                   +-message block-------------+
                   |        (2)                |
                   +-string--------------------+
                   |                    (2)    |
                   +-variable reference--------+
                   |             (2)           |
                   '-while block---------------'
 
 

ÁÖ:

  1. ÀÌ ¾ð¾î ±¸¼ºÀº IF ºí·ÏÀÌ ¸ÅÅ©·ÎÀÇ ¼±¾ð ºÎºÐ¿¡ ÀÖ´Â ´Ù¸¥ ºí·Ï ¿ÜºÎ¿¡ ÀÖÀ» ¶§ À¯È¿ÇÕ´Ï´Ù.

  2. ÀÌ ¾ð¾î ±¸¼ºÀº IF ºí·ÏÀÌ HTML ºí·Ï, MACRO_FUNCTION ºí·Ï, REPORT ºí·Ï ¶Ç´Â WHILE ºí·Ï¿¡ ÀÖÀ» ¶§ À¯È¿ÇÕ´Ï´Ù.

°ª

%IF
Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮸¦ ÁöÁ¤Çϴ Ű¿öµå.

condition list
Á¶°Ç°ú ±ÔÁ¤ÀÇ °ªÀ» ºñ±³ÇÕ´Ï´Ù. Á¶°Ç ¸ñ·ÏÀº ºÎ¿ï ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ¿¬°áÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¶°Ç ¸ñ·ÏÀº ´Ù¸¥ Á¶°Ç ¸ñ·Ï ³»¿¡ ÁßøµÉ ¼ö ÀÖ½À´Ï´Ù.

define statement
DEFINE ºí·Ï ¶Ç´Â ¸í·É¹®. º¯¼ö¸¦ Á¤ÀÇÇÏ°í ±¸¼º º¯¼ö¸¦ ¼³Á¤ÇÕ´Ï´Ù. º¯¼ö¸íÀº ¹®ÀÚ³ª ¹ØÁÙ(_)·Î ½ÃÀÛÇØ¾ß Çϸç, ¸ðµç ¿µ¼ýÀÚ ¹®ÀÚ ¹× ¹ØÁÙÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â DEFINE ºí·Ï ¶Ç´Â ¸í·É¹®À» Âü°íÇϽʽÿÀ.

exec_sql statement
ȣȯ¼ºÀ» À§ÇØ Áö¿øµÇ´Â DB2WWW ¸±¸®½º 1 ¾ð¾î ¿ä¼Ò. ºÎ·Ï A. DB2 WWW ¿¬°á ¶Ç´Â DB2 ¿ùµå ¿ÍÀ̵å À¥ ¸±¸®½º 1 ¼³¸í¼­¸¦ Âü°íÇϽʽÿÀ.

function block
Net.Data ¸ÅÅ©·Î¿¡¼­ È£ÃâÇÒ ¼ö ÀÖ´Â ¼­ºê·çƾÀ» ÁöÁ¤Çϴ Ű¿öµå. FUNCTION ºí·ÏÀÇ ½ÇÇà ¸í·É¹®Àº ¾ð¾î ȯ°æ¿¡¼­ Á÷Á¢ ÇØ¼®µÇ´Â ¾ð¾î ¸í·É¹®À» Æ÷ÇÔÇÒ ¼ö ÀÖÀ¸¸ç ¶Ç´Â ¿ÜºÎ ÇÁ·Î±×·¥¿¡ ´ëÇÑ È£ÃâÀ» ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â FUNCTION ºí·ÏÀ» Âü°íÇϽʽÿÀ.

function call
ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© Net.Data ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â ÇÔ¼ö È£Ãâ (@)À» Âü°íÇϽʽÿÀ.

HTML block
Ŭ¶óÀÌ¾ðÆ® ºê¶ó¿ìÀú¿ëÀ¸·Î Çü½ÄÀÌ ÁöÁ¤µÉ HTML ÅÂ±×¿Í ÇÔ²² ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

HTML statement
Ŭ¶óÀÌ¾ðÆ® ºê¶ó¿ìÀú¿ëÀ¸·Î Çü½ÄÈ­µÉ ¸ðµç ¿µ¹®ÀÚ, ¼ýÀÚ ¹× HTML ű׸¦ Æ÷ÇÔÇÕ´Ï´Ù.

IF block
IF ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮸¦ ¼öÇàÇÕ´Ï´Ù. Á¶°Ç ¸ñ·ÏÀÇ ¹®ÀÚ¿­ °ªÀº Á¤¼ö¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÌ¸ç ½ÃÀÛ ¶Ç´Â ³¡ °ø¹éÀÌ ¾ø´Â °æ¿ì ºñ±³¸¦ À§ÇØ ¼ýÀÚ·Î Ãë±ÞÇÕ´Ï´Ù. ÀÌµé °ªÀº ÇϳªÀÇ ´õÇϱâ (+) ¶Ç´Â »©±â (-) ºÎÈ£·Î ½ÃÀÛµÉ ¼ö ÀÖ½À´Ï´Ù.

include statement
INCLUDE ¸í·É¹®. ÆÄÀÏÀ» Àоî Net.Data ¸ÅÅ©·Î¿¡ ÅëÇÕ½Ãŵ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â INCLUDE ¸í·É¹®À» Âü°íÇϽʽÿÀ.

include_url statement
INCLUDE_URL ¸í·É¹®. ´Ù¸¥ ÆÄÀÏÀ» ÀÐ¾î ¸í·É¹®ÀÌ ÁöÁ¤µÈ Net.Data Web ¸ÅÅ©·Î¿¡ ÅëÇÕ½Ãŵ´Ï´Ù. ÁöÁ¤µÈ ÆÄÀÏÀº ±¹Áö ¶Ç´Â ¿ø°Ý ¼­¹ö¿¡ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â INCLUDE_URL ¸í·É¹®À» Âü°íÇϽʽÿÀ.

macro_function block
Net.Data ¸ÅÅ©·Î·ÎºÎÅÍ È£ÃâµÉ ¼ö ÀÖ´Â ¼­ºê·çƾÀ» ÁöÁ¤Çϴ Ű¿öµå. MACRO_FUNCTION ºí·ÏÀÇ ½ÇÇà ¸í·É¹®Àº Net.Data ¸ÅÅ©·Î ¾ð¾î ¼Ò½º ¸í·É¹®À» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â MACRO_FUNCTION ºí·ÏÀ» Âü°íÇϽʽÿÀ.

message block
MESSAGE ºí·Ï. ¸®ÅÏ ÄÚµå ¼¼Æ®, ¿¬°üµÈ ¸Þ¼¼Áö, ÇÔ¼ö È£ÃâÀÌ ¸®Å쵃 ¶§ Net.Data°¡ ÃëÇÏ´Â Á¶Ä¡. ±¸¹® ¹× ¿¹Á¦´Â MESSAGE ºí·ÏÀ» Âü°íÇϽʽÿÀ.

string
¿¬¼ÓµÈ ¿µ¹®ÀÚ¿Í ¼ýÀÚ ¹× ±¸µÎÁ¡. ¹®ÀÚ¿­ÀÌ Á¶°Ç ¸ñ·ÏÀÇ ±ÔÁ¤¿¡ ÀÖÀ¸¸é °³Çà ¹®ÀÚ¸¦ Á¦¿ÜÇÑ ¸ðµç ¹®ÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. ¹®ÀÚ¿­ÀÌ ½ÇÇà ÄÚµå ºí·Ï¿¡ ÀÖÀ¸¸é °³Çà ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ´Â ¸ðµç ¹®ÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ.

while block
WHILE ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮿¡¼­ ·çÇÎÀ» ¼öÇàÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â WHILE ºí·ÏÀ» Âü°íÇϽʽÿÀ.

condition
ºñ±³ ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© µÎ ¿ë¾î¸¦ ºñ±³ÇÏ´Â °Í. IF Á¶°ÇÀº ´ÙÀ½ µÎ Á¶°ÇÀÌ ¸ðµÎ ÂüÀÏ ¶§ ¼ýÀÚ ºñ±³·Î Ãë±ÞµË´Ï´Ù.

µÎ Á¶°Ç Áß Çϳª°¡ ÂüÀÌ ¾Æ´Ï¸é ÀϹÝÀûÀÎ ¹®ÀÚ¿­ ºñ±³°¡ ¼öÇàµË´Ï´Ù.

term
º¯¼ö¸í, ¹®ÀÚ¿­, º¯¼ö ÂüÁ¶ ¶Ç´Â ÇÔ¼ö È£Ãâ.

%ELIF
´ëü ó¸® °æ·Î¸¦ ½ÃÀÛÇϸç Á¶ ¸ñ·Ï°ú ´ëºÎºÐÀÇ Net.Data ¸ÅÅ©·Î ¸í·É¹®À» Æ÷ÇÔÇÒ ¼ö Àִ Ű¿öµå.

%ENDIF
%IF ºí·ÏÀ» ´Ý´Â Ű¿öµå.

%ELSE
±âŸ ¸ðµç Á¶°Ç ¸ñ·ÏÀÌ ¸¸Á·ÇÏÁö ¾ÊÀ» °æ¿ì¿¡ ¿¬°üµÈ ¸í·É¹®À» ½ÇÇàÇϴ Ű¿öµå.

¹®¸Æ

IF ºí·ÏÀº ´ÙÀ½ ¹®¸Æ¿¡ µé¾î ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

IF ºí·ÏÀº Net.Data ¸ÅÅ©·ÎÀÇ ¼±¾ð ºÎºÐ¿¡ ÀÖ´Â ´Ù¸¥ ºí·Ï ¿ÜºÎ¿¡ À§Ä¡ÇÒ ¶§ ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

IF ºí·ÏÀº Net.Data ¸ÅÅ©·ÎÀÇ HTML ºí·Ï, MACRO_FUNCTION ºí·Ï£¬ REPORT ºí·Ï, ROW ºí·Ï ¶Ç´Â WHILE ºí·Ï¿¡ À§Ä¡ÇÒ ¶§ ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹

¿¹Á¦ 1: Net.Data ¸ÅÅ©·ÎÀÇ ¼±¾ð ºÎºÐ¿¡ ÀÖ´Â IF ºí·Ï

%DEFINE a = "1"
%DEFINE b = "2"
...
%IF ($(DTW_HTML_TABLE) == "YES")
%define OUT_FORMAT = "HTML"
%ELSE
%define OUT_FORMAT = "CHARACTER"
%ENDIF
 
%HTML(REPORT){
 ...
%}

¿¹Á¦ 2: HTML ºí·Ï ³»ÀÇ IF ºí·Ï

%HTML(REPORT){
@myFunctionCall()
%IF ($RETURN_CODE) == $(failure_rc))
   <P> The function call failed with failure code $(RETURN_CODE).
%ELIF ($(RETURN_CODE) == $(warning_rc))
   <P> The function call succeeded with warning code $(RETURN_CODE).
%ELIF ($(RETURN_CODE) == $(success_rc))
   <P>The function call was successful.
%ELSE
   P>The function call returned with unknown return code $(RETURN_CODE).
%ENDIF
%}

¿¹Á¦ 3: ¼ýÀÚ ºñ±³

%IF (ROW_NUM < "100")
    <p>The table is not full yet...
%ELIF (ROW_NUM == "100")
    <p>The table is now full...
%ELSE
    <p>The table has overflowed...
%ENDIF

³»ÀçÀû Å×ÀÌºí º¯¼öÀÎ ROW_NUMÀÌ Ç×»ó Á¤¼ö°ªÀ» ¸®ÅÏÇÏ¸ç ºñ±³µÇ´Â °ªµµ Á¤¼öÀ̹ǷΠ¼ýÀÚ ºñ±³°¡ ¼öÇàµË´Ï´Ù.

¿¹Á¦ 4: Áßø IF ºí·Ï

%IF (MONTH == "January")
  %IF (DATE = "1")
    HAPPY NEW YEAR!
%ELSE
    Ho hum, just another day.
%ENDIF
%ENDIF

INCLUDE ¸í·É¹®

¸ñÀû

ÆÄÀÏÀ» ÀÐ¾î ¸í·É¹®ÀÌ ÁöÁ¤µÈ Net.Data ¸ÅÅ©·Î¿¡ ÅëÇÕ½Ãŵ´Ï´Ù.

Net.Data´Â ÃʱâÈ­ ÆÄÀÏÀÇ INCLUDE_PATH ¸í·É¹®¿¡ ÁöÁ¤µÈ µð·ºÅ丮¿¡¼­ Æ÷ÇÔ ÆÄÀÏÀ» ã½À´Ï´Ù.

´ëºÎºÐÀÇ °í±Þ ¾ð¾î¿¡¼­Ã³·³ Æ÷ÇÔ ÆÄÀÏÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. °øÅë ¸Ó¸®¸»°ú ²¿¸®¸»À» »ðÀÔÇϰųª, °øÅë º¯¼ö ¼¼Æ®¸¦ Á¤ÀÇÇϰųª, FUNCTION ºí·Ï Á¤ÀÇÀÇ °øÅë ¼­ºê·çƾ ¶óÀ̺귯¸®¸¦ Net.Data ¸ÅÅ©·Î¿¡ ÅëÇÕ½Ãų ¼ö ÀÖ½À´Ï´Ù.

±ÇÇÑ Á¤º¸: À¥ ¼­¹ö°¡ INCLUDE¹®¿¡¼­ ÂüÁ¶ÇÏ´Â ÆÄÀÏ¿¡ ´ëÇÑ ¾×¼¼½º ±ÇÇÑÀ» °¡Áö´ÂÁö È®ÀÎÇϽʽÿÀ. ÀÚ¼¼ÇÑ ³»¿ëÀº Net.Data Administration and Programming GuideÀÇ ±¸¼º Àå¿¡¼­ Net.Data ÆÄÀÏ¿¡ ´ëÇÑ À¥ ¼­¹ö ¾×¼¼½º ±ÇÇÑ ÁöÁ¤¿¡ °üÇÑ ÀýÀ» Âü°íÇϽʽÿÀ.

ÆÁ: ·ÎÄà À¥ ¼­¹ö¿¡¼­ °¡Á®¿Â HTML ÆÄÀÏÀ» Æ÷ÇÔ½ÃŰ·Á¸é INCLUDE_URL¿¡ ´ëÇØ ¿¹Á¦ 3¿¡¼­ ³ªÅ¸³ª´Â °Íó·³ INCLUDE_URL ±¸¼ºÀ» »ç¿ëÇϽʽÿÀ. ¿¹Á¦ ±¸¹®À» »ç¿ëÇϸé À¥ ¼­¹ö°¡ ÀÌ¹Ì ¾Ë°í ÀÖ´Â µð·ºÅ丮¸¦ ÁöÁ¤Çϱâ À§ÇØ Net.Data ÃʱâÈ­ ÆÄÀÏ¿¡¼­ INCLUDE_PATH¸¦ ÁöÁ¤ÇÒ Çʿ䰡 ¾ø½À´Ï´Ù.

±¸¹®

                  .-------------------------.
                  V                         |
>>-%INCLUDE----"----+-string-------------+--+---"--------------><
                    '-variable reference-'
 

°ª

%INCLUDE
ÆÄÀÏÀ» ÁöÁ¤Çϴ Ű¿öµå¸¦ ÀÐÀº ÈÄ Net.Data ¸ÅÅ©·Î·Î ÅëÇյ˴ϴÙ.

name
¿µ¹®ÀÚ ¶Ç´Â ¹ØÁÙ·Î ½ÃÀÛÇÏ´Â ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ¿­·Î, ¿µ¹®ÀÚ, ¼ýÀÚ ¶Ç´Â ¹ØÁÙ·Î ÀÌ·ç¾îÁø ¸ðµç Á¶ÇÕÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

string
°³Çà ¹®ÀÚ¸¦ Á¦¿ÜÇÑ ¿¬¼ÓµÈ ¿µ¹®ÀÚ, ¼ýÀÚ ¹× ±¸µÎÁ¡.

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ.

¹®¸Æ

INCLUDE¹®Àº ´ÙÀ½ ¹®¸Æ¿¡ µé¾î ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

INCLUDE¹®Àº ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹

¿¹Á¦ 1: HTML ºí·ÏÀÇ INCLUDE¹®

%HTML(start){
%INCLUDE "header.hti"
...
%}

¿¹Á¦ 2: REPORT ºí·ÏÀÇ INCLUDE¹®

%REPORT {
  %INCLUDE "report_header.txt"
  %ROW {
    %INCLUDE "row_include.txt"
  %}
  %INCLUDE "report_footer.txt"
%}

¿¹Á¦ 3: INCLUDE¹®ÀÇ º¯¼ö ÂüÁ¶

%define library = "/qsys.lib/mylib.lib/"
%define filename = "macros.file/incfile.mbr"
 
%include "$(library)$(filename)"

INCLUDE_URL ¸í·É¹®

¸ñÀû

´Ù¸¥ ÆÄÀÏÀ» ÀÐ¾î ¸í·É¹®ÀÌ ÁöÁ¤µÈ Net.Data »ý¼º Ãâ·ÂÀ¸·Î ÅëÇÕ½Ãŵ´Ï´Ù. ÁöÁ¤µÈ ÆÄÀÏÀº ±¹Áö ¶Ç´Â ¿ø°Ý ¼­¹ö¿¡ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù.

INCLUDE_URL¹®À» »ç¿ëÇϸé ÀÀ¿ë ÇÁ·Î±×·¥ »ç¿ëÀÚ°¡ Á¦Ãâ ¹öưÀ» ¼±ÅÃÇÏÁö ¾Ê¾Æµµ ´Ù¸¥ ¸ÅÅ©·Î¿¡¼­ ¸ÅÅ©·Î¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù.

±¸¹®

                       .-------------------------.
                       V                         |
>>-%INCLUDE_URL---"------+-string-------------+--+--"----------><
                         '-variable reference-'
 

°ª

%INCLUDE_URL
±¹Áö ¶Ç´Â ¿ø°Ý ¼­¹ö·ÎºÎÅÍ ÆÄÀÏÀ» Àоî Net.Data ¸ÅÅ©·Î·Î ÅëÇյǵµ·Ï ÁöÁ¤Çϴ Ű¿öµå.

string
°³Çà ¹®ÀÚ¸¦ Á¦¿ÜÇÑ ¿¬¼ÓµÈ ¿µ¹®ÀÚ, ¼ýÀÚ ¹× ±¸µÎÁ¡.

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ.

¹®¸Æ

INCLUDE_URL¹®Àº ´ÙÀ½ ¹®¸Æ¿¡ µé¾î ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

INCLUDE_URL¹®Àº ´ÙÀ½ ¿ä¼ÒµéÀ» Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

INCLUDE_URL ÆÄÀÏÀº ´ÙÀ½ÀÇ ÆÄÀÏ Å©±â Á¦ÇÑÀ» °¡Áý´Ï´Ù.

INCLUDE_URL´Â OS/400 ȯ°æ¿¡¼­´Â Áö¿øµÇÁö ¾Ê½À´Ï´Ù.

¿¹

¿¹Á¦ 1: ´Ù¸¥ ¼­¹ö·ÎºÎÅÍÀÇ HTML ÆÄÀÏ Æ÷ÇÔ

 %include_url "http://www.ibm.com/path/myfile.html"

¿¹Á¦ 2: ¼­¹ö¸íÀ» È£ÃâÇÏ¿© ¿ø°Ý ¼­¹ö·ÎºÎÅÍÀÇ HTML ÆÄÀÏ Æ÷ÇÔ

 %include_url "myserver/path/myfile.html"

¿©±â¿¡¼­ myserver´Â ¼­¹ö¸íÀÔ´Ï´Ù.

¿¹Á¦ 3: ±¹Áö À¥ ¼­¹ö·ÎºÎÅÍÀÇ HTML ÆÄÀÏ Æ÷ÇÔ

 %include_url "/path/myfile.html"

ÆÁ: ÀÌ ¸Þ¼­µå¸¦ »ç¿ëÇϸé À¥ ¼­¹ö°¡ ÀÌ¹Ì ¾Ë°í ÀÖ´Â µð·ºÅ丮¸¦ ÁöÁ¤Çϱâ À§ÇØ Net.Data ±¸¼º ÆÄÀÏ¿¡¼­ INCLUDE_URL °æ·Î¸¦ °»½ÅÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. ¹®ÀÚ¿­ÀÌ ½½·¡½Ã·Î ½ÃÀÛµÇÁö ¾ÊÀ¸¸é Net.Data´Â ÀÌ ¹®ÀÚ¿­À» ¼­¹ö¸íÀ¸·Î °¡Á¤Çϰí ÇØ´ç À̸§À» °¡Áø ¼­¹ö·ÎºÎÅÍ ÆÄÀÏÀ» °Ë»öÇÏ·Á ÇÕ´Ï´Ù.

¿¹Á¦ 4: ¿ø°Ý ¼­¹ö·ÎºÎÅÍÀÇ ´Ù¸¥ Net.Data ¸ÅÅ©·Î Æ÷ÇÔ

%REPORT{
<P>Current hot pick as of @DTW_rTIME():
%include_url "http://www.ibm.com/cgi-bin/db2www/hotpic.mac/report?custno=$(custno)"

ÀÌ ¿¹Á¦¿¡¼­´Â ¸ÅÅ©·Î ÆÄÀÏ hotpic.mac°¡ È£ÃâµÇ°í custno°¡ º¯¼ö·Î ¼Û½ÅµË´Ï´Ù. ¹®ÀÚ¿­ÀÌ ½½·¡½Ã·Î ½ÃÀ۵Ǹé Net.Data´Â ±¹Áö À¥ ¼­¹ö·ÎºÎÅÍ INCLUDE ÆÄÀÏÀ» °Ë»öÇÕ´Ï´Ù.

LIST ¸í·É¹®

¸ñÀû

°ªÀÇ ±¸ºÐ ¸ñ·ÏÀ» ÀÛ¼ºÇÕ´Ï´Ù. ÀϺΠWHERE ¶Ç´Â HAVING Àý¿¡¼­ ãÀ» ¼ö ÀÖ´Â °Í°ú °°ÀÌ ¿©·¯ Ç׸ñÀÌ ÀÖ´Â SQL Á¶È¸¸¦ ±¸¼ºÇÒ ¶§ LIST¹®À» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

±¸¹®

             .--------------------------.
             V                          |
>>-%LIST--"-----+--------------------+--+---"----variable name--><
                +-string-------------+
                +-variable reference-+
                '-function call------'
 

°ª

%LIST
°ªÀÇ ±¸ºÐ ¸ñ·ÏÀ» ÀÛ¼ºÇÏ´Â µ¥ »ç¿ëµÇ´Â º¯¼ö¸¦ ÁöÁ¤Çϴ Ű¿öµå.

string
°³Çà ¹®ÀÚ¸¦ Á¦¿ÜÇÑ ¿¬¼ÓµÈ ¿µ¹®ÀÚ, ¼ýÀÚ ¹× ±¸µÎÁ¡.

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ.

function call
ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© Net.Data ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â ÇÔ¼ö È£Ãâ (@)À» Âü°íÇϽʽÿÀ.

variable name
Çϳª ÀÌ»óÀÇ À̸§, Ãß°¡µÇ´Â °¢ À̸§Àº Á¡(.)À¸·Î °áÇյ˴ϴÙ. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö¸íÀ» Âü°íÇϽʽÿÀ.

¹®¸Æ

LIST¹®Àº ´ÙÀ½ ¹®¸Æ¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

LIST¹®Àº ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹

¿¹Á¦ 1: º¯¼ö ¸ñ·Ï

 %DEFINE{
DATABASE="custcity"
%LIST " OR " conditions
cond1="cond1='Sao Paolo'"
cond2="cond2='Seattle'"
cond3="cond3='Shanghai'"
whereClause=conditions ? "WHERE $(conditions)" : ""
%}

MACRO_FUNCTION ºí·Ï

¸ñÀû

Net.Data ¸ÅÅ©·Î¿¡¼­ È£ÃâÇÒ ¼ö ÀÖ´Â ¼­ºê·çƾÀ» Á¤ÀÇÇÕ´Ï´Ù. MACRO_FUNCTION ºí·ÏÀÇ ½ÇÇà ¸í·É¹®Àº Net.Data ¸ÅÅ©·Î ¾ð¾î ¼Ò½º ¸í·É¹®À̾î¾ß ÇÕ´Ï´Ù.

±¸¹®

>>-%MACRO_FUNCTION--function_name--| parm passing spec |-------->
 
>-----{--| function body |----+---------------+--%}------------><
                              '-report block--'
 
parm passing spec
 
|---(--+-----------------------------+---)----------------------|
       |  .-,---------------------.  |
       |  |      (1)              |  |
       |  V .-IN-------.          |  |
       '----+----------+---name---+--'
            +-OUT------+
            '-INOUT----'
 
function body
 
    .-----------------------------.
    V                             |
|------+-----------------------+--+-----------------------------|
       +-exec_sql statement----+
       +-variable reference----+
       +-if block--------------+
       +-function call---------+
       +-HTML statement--------+
       +-include statement-----+
       +-include_url statement-+
       '-while block-----------'
 

ÁÖ:

  1. »ý·«½Ã ¸Å°³º¯¼ö À¯ÇüÀÎ INÀº ¸Å°³º¯¼ö ¸ñ·Ï ¸Ç ¾Õ¿¡ ÁöÁ¤µÈ ¸Å°³º¯¼ö À¯ÇüÀÌ ¾øÀ» ¶§ Àû¿ëµË´Ï´Ù. ¸Å°³º¯¼ö À¯ÇüÀÌ ¾ø´Â ¸Å°³º¯¼ö´Â ¸Å°³º¯¼ö ¸ñ·Ï¿¡ °¡Àå ÃÖ±Ù¿¡ ÁöÁ¤µÈ À¯ÇüÀ» »ç¿ëÇϰųª ÁöÁ¤µÈ À¯ÇüÀÌ ¾øÀ» ¶§´Â À¯Çü INÀ» »ç¿ëÇÕ´Ï´Ù. ¿¹¸¦ µé¾î ¸Å°³º¯¼ö ¸ñ·Ï(parm1, INOUT parm2, parm3, OUT parm4, parm5)¿¡¼­ ¸Å°³º¯¼ö parm1, parm3 ¹× parm5´Â ¸Å°³º¯¼ö À¯ÇüÀ» °¡ÁöÁö ¾Ê½À´Ï´Ù. ¸Å°³º¯¼ö parm1Àº Ãʱ⠸Ű³º¯¼ö À¯ÇüÀÌ ÁöÁ¤µÇÁö ¾Ê¾ÒÀ¸¹Ç·Î À¯Çü INÀ» °¡Áý´Ï´Ù. ¸Å°³º¯¼ö parm3Àº °¡Àå ÃÖ±Ù¿¡ ÁöÁ¤µÈ ¸Å°³º¯¼ö À¯ÇüÀÎ INOUTÀ» °¡Áý´Ï´Ù. ÀÌ¿Í ¸¶Âù°¡Áö·Î ¸Å°³º¯¼ö parm5´Â À¯Çü OUTÀÌ ¸Å°³º¯¼ö ¸ñ·Ï¿¡¼­ °¡Àå ÃÖ±Ù¿¡ ÁöÁ¤µÈ À¯ÇüÀ̹ǷΠÀÌ À¯ÇüÀ» °¡Áý´Ï´Ù.

°ª

%macro_function
Net.Data ¸ÅÅ©·Î¿¡¼­ È£ÃâÇÒ ¼ö ÀÖ´Â ¼­ºê·çƾÀ» ÁöÁ¤Çϴ Ű¿öµå. MACRO_FUNCTION ºí·ÏÀÇ ½ÇÇà ¸í·É¹®¿¡´Â Net.Data°¡ Á÷Á¢ ÇØ¼®ÇÏ´Â ¾ð¾î ¸í·É¹®ÀÌ Æ÷ÇԵǾî¾ß ÇÕ´Ï´Ù.

function_name
Á¤ÀÇÇÒ ÇÔ¼öÀÇ À̸§. ¿µ¹®ÀÚ ¶Ç´Â ¹ØÁÙ·Î ½ÃÀÛÇÏ´Â ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ¿­·Î, ¿µ¹®ÀÚ, ¼ýÀÚ ¶Ç´Â ¹ØÁÙ·Î ÀÌ·ç¾îÁø ¸ðµç Á¶ÇÕÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

¸Å°³º¯¼ö Á¦°ø ½ºÆå:

IN
Net.Data°¡ ¾ð¾î ȯ°æÀ¸·Î ÀÔ·Â ÀڷḦ Àü´ÞÇϵµ·Ï ÁöÁ¤ÇÕ´Ï´Ù. INÀÌ »ý·«½Ã °ªÀÔ´Ï´Ù.

OUT
¾ð¾î ȯ°æÀÌ Net.Data·Î Ãâ·Â ÀڷḦ ¸®ÅÏÇϵµ·Ï ÁöÁ¤ÇÕ´Ï´Ù.

INOUT
Net.Data°¡ ¾ð¾î ȯ°æ¿¡ ÀÔ·Â ÀڷḦ Àü´ÞÇÏ°í ¾ð¾î ȯ°æÀº Net.Data·Î Ãâ·Â ÀڷḦ ¸®ÅÏÇϵµ·Ï ÁöÁ¤ÇÕ´Ï´Ù.

name
¿µ¹®ÀÚ ¶Ç´Â ¹ØÁÙ·Î ½ÃÀÛÇÏ´Â ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ¿­·Î, ¿µ¹®ÀÚ, ¼ýÀÚ ¶Ç´Â ¹ØÁÙ·Î ÀÌ·ç¾îÁø ¸ðµç Á¶ÇÕÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

ÇÔ¼ö ³»¿ë:

exec_sql
ȣȯ¼ºÀ» À§ÇØ Áö¿øµÇ´Â DB2WWW ¸±¸®½º 1 ¾ð¾î ¿ä¼Ò. ºÎ·Ï A. DB2 WWW ¿¬°á ¶Ç´Â DB2 ¿ùµå ¿ÍÀ̵å À¥ ¸±¸®½º 1 ¼³¸í¼­¸¦ Âü°íÇϽʽÿÀ.

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ.

IF block
IF ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮸¦ ¼öÇàÇÕ´Ï´Ù. Á¶°Ç ¸ñ·ÏÀÇ ¹®ÀÚ¿­ °ªÀº Á¤¼ö¸¦ ³ªÅ¸³»¸ç ½ÃÀÛ ¶Ç´Â ³¡ °ø¹éÀÌ ¾ø´Â °æ¿ì ºñ±³¸¦ À§ÇØ ¼ýÀÚ·Î Ãë±ÞÇÕ´Ï´Ù. ÀÌµé °ªÀº ÇϳªÀÇ ´õÇϱâ (+) ¶Ç´Â »©±â (-) ºÎÈ£·Î ½ÃÀÛµÉ ¼ö ÀÖ½À´Ï´Ù.

function call
ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© Net.Data ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â ÇÔ¼ö È£Ãâ (@)À» Âü°íÇϽʽÿÀ.

HTML statement
Ŭ¶óÀÌ¾ðÆ® ºê¶ó¿ìÀú¿ëÀ¸·Î Çü½ÄÀÌ ÁöÁ¤µÉ HTML ÅÂ±×¿Í ÇÔ²² ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

include statement
INCLUDE ¸í·É¹®. ÆÄÀÏÀ» Àоî Net.Data ¸ÅÅ©·Î¿¡ ÅëÇÕ½Ãŵ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦¿¡ ´ëÇØ¼­´Â INCLUDE ¸í·É¹®À» Âü°íÇϽʽÿÀ.

include_url statement
INCLUDE_URL ¸í·É¹®. ´Ù¸¥ ÆÄÀÏÀ» ÀÐ¾î ¸í·É¹®ÀÌ ÁöÁ¤µÈ Net.Data ¸ÅÅ©·Î·Î ÅëÇÕ½Ãŵ´Ï´Ù. ÁöÁ¤µÈ ÆÄÀÏÀº ±¹Áö ¶Ç´Â ¿ø°Ý ¼­¹ö¿¡ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â INCLUDE_URL ¸í·É¹®À» Âü°íÇϽʽÿÀ.

while block
WHILE ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮿¡¼­ ·çÇÎÀ» ¼öÇàÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â WHILE ºí·ÏÀ» Âü°íÇϽʽÿÀ.

¹®¸Æ

MACRO_FUNCTION ºí·ÏÀº ´ÙÀ½ ¹®¸Æ¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

ÀÌ ±¸¼ºÀº OS/390 ¿î¿µÃ¼Á¦¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

MACRO_FUNCTION ºí·ÏÀº ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹

¿¹Á¦ 1: ¸Þ¼¼Áö 󸮸¦ ÁöÁ¤ÇÏ´Â ¸ÅÅ©·Î ÇÔ¼ö

%MACRO_FUNCTION setMessage(IN rc, OUT message) {
%IF (rc == "0")
  @dtw_assign(message, "Function call was successful.")
%ELIF (rc == "-1")
  @dtw_assign(message, "Function failed, out of memory.")
%ELIF (rc == "-2")
  @dtw_assign(message, "Function failed, invalid parameter.")
%ENDIF
%}

¿¹Á¦ 2: Çì´õ Á¤º¸¸¦ ÁöÁ¤ÇÏ´Â ¸ÅÅ©·Î ÇÔ¼ö

%MACRO_FUNCTION setup(IN browserType) {
%{ call this function at the top of each HTML block in the macro %}
%INCLUDE "header_info.html"
@dtw_rdate()
%IF (browserType == "IBM")
  @setupIBM()
%ELIF (browserType == "MS")
  @setupMS()
%ELIF (browserType == "NS")
  @setupNS()
%ELSE
  @setupDefault()
%ENDIF
%}

MESSAGE ºí·Ï

¸ñÀû

ÇÔ¼ö·ÎºÎÅÍÀÇ ¸®ÅÏ Äڵ带 ±âÃʷΠǥ½ÃÇÒ ¸Þ¼¼Áö¿Í ÃëÇÒ Á¶Ä¡¸¦ ÁöÁ¤ÇÕ´Ï´Ù.

MESSAGE ºí·Ï¿¡¼­ ÇØ´ç ¸Þ¼¼Áö¿Í Á¶Ä¡¿Í ÇÔ²² ¸®ÅÏ ÄÚµå ÁýÇÕÀ» Á¤ÀÇÇÕ´Ï´Ù. ÇÔ¼ö È£ÃâÀÌ ¿Ï·áµÇ¸é, Net.Data´Â ¿©±â¼­ ¸®ÅÏµÈ ¸®ÅÏ Äڵ带 MESSAGE ºí·Ï¿¡ Á¤ÀǵǾî ÀÖ´Â ¸®ÅÏ ÄÚµå¿Í ºñ±³ÇÕ´Ï´Ù. ÇÔ¼öÀÇ ¸®ÅÏ Äڵ尡 MESSAGE ºí·Ï¿¡ Á¤ÀǵǾî ÀÖ´Â ¸®ÅÏ ÄÚµå¿Í ÀÏÄ¡Çϸé Net.Data´Â 󸮸¦ °è¼ÓÇÒÁö ¶Ç´Â Net.Data ¸ÅÅ©·Î¸¦ Á¾·áÇÒÁöÀÇ ¿©ºÎ¸¦ ÆÇº°Çϱâ À§ÇØ ¸Þ¼¼Áö¸¦ Ç¥½ÃÇÏ°í ±ÇÀå Á¶Ä¡¸¦ Æò°¡ÇÕ´Ï´Ù.

MESSAGE ºí·ÏÀº ¹üÀ§³»¿¡¼­ Àü¿ªÀ̰ųª ÇϳªÀÇ FUNCTION ºí·Ï¿¡ ´ëÇØ ±¹Áö°¡ µÉ ¼ö ÀÖ½À´Ï´Ù. MESSAGE ºí·ÏÀÌ °¡Àå ¹Ù±ùÀÇ ¸ÅÅ©·Î °èÃþ¿¡ Á¤ÀǵǾî ÀÖÀ¸¸é, ÀÌ´Â ¹üÀ§³»¿¡¼­´Â Àü¿ªÀ¸·Î °£Áֵ˴ϴÙ. º¹¼öÀÇ Àü¿ª MESSAGE ºí·ÏÀÌ Á¤ÀǵǾî ÀÖÀ¸¸é, ¸¶Áö¸·À¸·Î ó¸®µÈ ºí·Ï¸¸ »ç¿ë ÁßÀÎ °ÍÀ¸·Î °£Áֵ˴ϴÙ. MESSAGE ºí·ÏÀÌ FUNCTION ºí·Ï ³»ºÎ¿¡ Á¤ÀǵǾî ÀÖÀ¸¸é, ºí·ÏÀÌ Á¤ÀÇµÈ FUNCTION ºí·Ï¿¡ ´ëÇÑ ¹üÀ§³»¿¡¼­´Â ±¹ÁöÀÔ´Ï´Ù. ¸®ÅÏ ÄÚµå ó¸® ±ÔÄ¢¿¡ ´ëÇØ¼­´Â Net.Data Administration and Programming Guide¿¡¼­ MESSAGE ºí·Ï ÀýÀ» Âü°íÇϽʽÿÀ.

±¸¹®

>>-%MESSAGE--{-------------------------------------------------->
 
      .---------------------------------------------------------------------------------.
      V                                                                                 |
>--------+---------------------------------------------------------------------------+--+>
         '--+-| return code spec |--+--:---| message text spec |----| action spec |--'
            '-| SQLSTATE |----------'
 
>----%--}------------------------------------------------------><
 
action spec
 
|--+------------------+-----------------------------------------|
   '-| action spec |--'
 
return code spec
 
|---+-DEFAULT------------+--------------------------------------|
    +-+DEFAULT-----------+
    +- -DEFAULT----------+
    +-+----+---msg_code--+
    | +- --+             |
    | '-+--'             |
    '-include statement--'
 
SQLSTATE
 
|---SQLSTATE--:----+-state_id------------+----------------------|
                   '-alphanumeric string-'
 
message text spec
 
          .--------------------------.
          V                          |
|----+-"-----+--------------------+--+---"---+------------------|
     |       +-string-------------+          |
     |       +-variable reference-+          |
     |       +-function call------+          |
     |       '-(new_line)---------'          |
     |    .--------------------------.       |
     |    V                          |       |
     +-{-----+--------------------+--+---%}--+
     |       +-string-------------+          |
     |       +-variable reference-+          |
     |       '-function call------'          |
     '-include statement---------------------'
 
action spec
 
         .-EXIT-----.
|---+-:--+----------+----+--------------------------------------|
    |    '-CONTINUE-'    |
    '-include statement--'
 

°ª

%MESSAGE
¸®ÅÏ ÄÚµå ¼¼Æ®, ¿¬°üµÈ ¸Þ¼¼Áö, ÇÔ¼ö È£ÃâÀÌ ¸®Å쵃 ¶§ Net.Data°¡ ÃëÇÒ Á¶Ä¡¸¦ Á¤ÀÇÇÏ´Â ºí·Ï¿¡ ´ëÇÑ Å°¿öµå.

¸®ÅÏ ÄÚµå ½ºÆå
¾çÀÇ Á¤¼ö ¶Ç´Â À½ÀÇ Á¤¼ö. Net.Data RETURN_CODE º¯¼ö °ªÀÌ ¸®ÅÏ ÄÚµå ½ºÆå °ª°ú ÀÏÄ¡ÇÏ¸é ¸Þ¼¼Áö ¸í·É¹®ÀÇ ³ª¸ÓÁö Á¤º¸´Â ÇÔ¼ö È£ÃâÀ» ó¸®ÇÏ´Â µ¥ »ç¿ëµË´Ï´Ù. ¶ÇÇÑ MESSAGE ºí·Ï¿¡ Ưº°ÇÏ°Ô ÀԷµǾî ÀÖÁö ¾ÊÀº ¸®ÅÏ Äڵ忡 ´ëÇÑ ¸Þ¼¼Áö¸¦ ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.

+DEFAULT
¾ç¼öÀÇ »ý·«½Ã ¸Þ¼¼Áö Äڵ带 ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµÇ´Â Ű¿öµå. Net.Data´Â RETURN_CODE°¡ 0º¸´Ù Å©°í Á¤È®ÇÑ ÀÏÄ¡ »çÇ×ÀÌ ÁöÁ¤µÇÁö ¾ÊÀº °æ¿ì ÀÌ ¸Þ¼¼Áö ¸í·É¹®ÀÇ Á¤º¸¸¦ »ç¿ëÇÏ¿© ÇÔ¼ö È£ÃâÀ» ó¸®ÇÕ´Ï´Ù.

-DEFAULT
À½¼öÀÇ »ý·«½Ã ¸Þ¼¼Áö Äڵ带 ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµÇ´Â Ű¿öµå. Net.Data´Â RETURN_CODE°¡ 0º¸´Ù ÀÛ°í Á¤È®ÇÑ ÀÏÄ¡ »çÇ×ÀÌ ÁöÁ¤µÇÁö ¾ÊÀº °æ¿ì ÀÌ ¸Þ¼¼Áö ¸í·É¹®ÀÇ Á¤º¸¸¦ »ç¿ëÇÏ¿© ÇÔ¼ö È£ÃâÀ» ó¸®ÇÕ´Ï´Ù.

DEFAULT
»ý·«½Ã ¸Þ¼¼Áö Äڵ带 ÁöÁ¤ÇÏ´Â µ¥ »ç¿ëµÇ´Â Ű¿öµå. Net.Data´Â ´ÙÀ½ Á¶°ÇÀÌ ¸ðµÎ ¸¸Á·µÉ ¶§ ÀÌ ¸Þ¼¼Áö ¸í·É¹®ÀÇ Á¤º¸¸¦ »ç¿ëÇÏ¿© ÇÔ¼ö È£ÃâÀ» ó¸®ÇÕ´Ï´Ù.

  • RETURN_CODE°¡ 0º¸´Ù Å©°Å³ª ÀÛÁö¸¸ 0ÀÌ ¾Æ´Ñ °æ¿ì.

  • ¸®ÅÏ Äڵ忡 ´ëÇØ Á¤È®ÇÑ ÀÏÄ¡ »çÇ×ÀÌ ÁöÁ¤µÇÁö ¾ÊÀº °æ¿ì.

  • RETURN_CODE°¡ 0º¸´Ù Å©°Å³ª ÀÛÀ» ¶§ +DEFAULT ¶Ç´Â -DEFAULT °ªÀÌ ÁöÁ¤µÇÁö ¾ÊÀº °æ¿ì.

msg_code
ó¸® Áß¿¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â ¿À·ù³ª °æ°í¸¦ ÁöÁ¤ÇÏ´Â ¸Þ¼¼Áö ÄÚµå. 0¿¡¼­ 9ÀÚ¸®ÀÇ ¼ýÀÚ ¹®ÀÚ¿­.

SQLSTATE
°øÅë ¿À·ù Á¶°Ç¿¡ ´ëÇÑ °øÅë Äڵ带 ÀÀ¿ë ÇÁ·Î±×·¥¿¡ Á¦°øÇϴ Ű¿öµå. SQLSTATE °ªÀº SQL Ç¥ÁØ¿¡ Æ÷ÇÔµÈ SQLSTATE ½ºÆåÀ» ±âÃÊ·Î Çϸç ÄÚµù ±â¹ýÀº ¸ðµç IBM SQL ±¸Çö¿¡¼­ µ¿ÀÏÇÕ´Ï´Ù. Á¦ÇÑ»çÇ×: OS/400 Ç÷§Æû¿¡¼­´Â Áö¿øµÇÁö ¾ÊÀ½.

state_id
¿µ¹®ÀÚ ¶Ç´Â ¹ØÁÙ·Î ½ÃÀÛÇÏ´Â ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ¿­·Î, ¿µ¹®ÀÚ, ¼ýÀÚ ¶Ç´Â ¹ØÁÙ·Î ÀÌ·ç¾îÁø ¸ðµç Á¶ÇÕÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

¿µ¼ýÀÚ ¹®ÀÚ¿­
¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ°¡ Á¶ÇÕµÈ ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ¿­. ¿©±â¿¡´Â ±¸µÎÁ¡ÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

message text spec
RETURN_CODE°¡ ÇöÀç ¸Þ¼¼Áö ¸í·É¹®ÀÇ return_code °ª°ú ÀÏÄ¡ÇÒ °æ¿ì À¥ ºê¶ó¿ìÀú·Î ¼Û½ÅµÇ´Â ¹®ÀÚ¿­.

string
¿¬¼ÓµÈ ¿µ¹®ÀÚ¿Í ¼ýÀÚ ¹× ±¸µÎÁ¡. ¹®ÀÚ¿­ÀÌ Å« µû¿ÈÇ¥·Î ¹­¿© ÀÖÀ¸¸é °³Çà ¹®ÀÚ´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ.

function call
ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© Net.Data ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â ÇÔ¼ö È£Ãâ (@)À» Âü°íÇϽʽÿÀ.

Á¶Ä¡ ½ºÆå
RETURN_CODE°¡ ÇöÀç ¸Þ¼¼Áö ¸í·É¹®ÀÇ return_code °ª°ú ÀÏÄ¡ÇÒ °æ¿ì Net.Data°¡ ÃëÇÏ´Â Á¶Ä¡¸¦ ÆÇº°ÇÕ´Ï´Ù.

EXIT
ÁöÁ¤µÈ ¸Þ¼¼Áö Äڵ忡 ÇØ´çÇÏ´Â ¿À·ù³ª °æ°í°¡ ¹ß»ýÇßÀ» ¶§ ¸ÅÅ©·Î°¡ Áï½Ã Á¾·áµÇµµ·Ï ÁöÁ¤Çϴ Ű¿öµå. ÀÌ °ªÀº »ý·«½Ã °ªÀÔ´Ï´Ù.

CONTINUE
ÁöÁ¤µÈ ¸Þ¼¼Áö Äڵ忡 ÇØ´çÇÏ´Â ¿À·ù³ª °æ°í°¡ ¹ß»ýÇßÀ» ¶§ 󸮸¦ °è¼ÓÇϵµ·Ï ÁöÁ¤Çϴ Ű¿öµå.

include statement
INCLUDE ¸í·É¹®. ÆÄÀÏÀ» Àоî Net.Data ¸ÅÅ©·Î¿¡ ÅëÇÕ½Ãŵ´Ï´Ù. INCLUDE¹®Àº MESSAGEÀÇ ¸ðµç À§Ä¡¿¡¼­ ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦¿¡ ´ëÇØ¼­´Â INCLUDE ¸í·É¹®À» Âü°íÇϽʽÿÀ.

¹®¸Æ

MESSAGE ºí·ÏÀº ´ÙÀ½ ¹®¸Æ¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

MESSAGE ºí·ÏÀº ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

SQLSTATE´Â OS/400 Ç÷§Æû¿¡¼­´Â Áö¿øµÇÁö ¾Ê½À´Ï´Ù.

¿¹

¿¹Á¦ 1: ±¹Áö MESSAGE ºí·Ï

%MESSAGE{
-601: {<H3>The table has already been created, please go back and enter your name.</H3>
<P><a href="input">Return</a>
%}
default: "<H3>Can't continue because of error $(RETURN_CODE)</H3>"
%}

¿¹Á¦ 2: Àü¿ª MESSAGE ºí·Ï

%{ global message block %}
  %MESSAGE {
     -100     : "Return code -100 message"   : exit
      100     : "Return code 100 message"    : continue
   +default : {
This is a long message that spans more
than one line. You can use HTML tags, including
anchors and forms, in this message. %}   : continue
%}
 
%{ local message block inside a FUNCTION block %}
%FUNCTION(DTW_REXX) my_function() {
  %EXEC { my_command.cmd %}
  %MESSAGE {
     -100     : "Return code -100 message"   : exit
      100     : "Return code 100 message"    : continue
     -default : {
This is a long message that spans more
than one line. You can use HTML tags, including
anchors and forms, in this message. %}   : exit
  %}

¿¹Á¦ 3: INCLUDE¹®À» Æ÷ÇÔÇÏ´Â MESSAGE ºí·Ï.

 %message {
   %include "rc1000.msg"
   %include "rc2000.msg"
   %include "defaults.msg"
 %}

REPORT ºí·Ï

¸ñÀû

ÇÔ¼ö È£Ãâ·ÎºÎÅÍÀÇ Ãâ·Â Çü½ÄÀ» ÁöÁ¤ÇÕ´Ï´Ù. º¸°í¼­°¡ ¸í¸íµÈ Å×À̺íÀÇ ÀڷḦ »ç¿ëÇϵµ·Ï ÁöÁ¤Çϱâ À§ÇØ Å×À̺í¸í ¸Å°³º¯¼ö¸¦ ÀÔ·ÂÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¸Å°³º¯¼ö¸¦ ÀÔ·ÂÇÏÁö ¾ÊÀ¸¸é ÇÔ¼ö ¸Å°³º¯¼ö ¸ñ·Ï¿¡¼­ ãÀ» ¼ö Àִ ù¹øÂ° Ãâ·Â Å×À̺íÀ» »ç¿ëÇÏ¿© º¸°í¼­°¡ »ý¼ºµÇ¸ç ¸ñ·Ï¿¡ Å×À̺í¸íÀÌ ¾øÀ¸¸é »ý·«½Ã Å×À̺í ÀڷḦ »ç¿ëÇÏ¿© º¸°í¼­°¡ »ý¼ºµË´Ï´Ù.

±¸¹®

>>-%REPORT----+-------------+--{-------------------------------->
              '-(--name--)--'
 
      .-----------------------------.
      V                             |
>--------+-----------------------+--+---+-----------+----------->
         +-string----------------+      '-row block-'
         +-if block--------------+
         +-variable reference----+
         +-function call---------+
         +-HTML statements-------+
         +-include statement-----+
         +-include_url statement-+
         '-while block-----------'
 
      .-----------------------------.
      V                             |
>--------+-----------------------+--+--%}----------------------><
         +-string----------------+
         +-if block--------------+
         +-variable reference----+
         +-function call---------+
         +-HTML statements-------+
         +-include statement-----+
         +-include_url statement-+
         '-while block-----------'
 

°ª

%REPORT
ÇÔ¼ö È£Ãâ Ãâ·Â¿¡ ´ëÇÑ Æ÷¸ËÆÃ ÁöħÀ» ÁöÁ¤Çϴ Ű¿öµå. º¸°í¼­¿¡ ¸Ó¸®¸» ¹× ²¿¸®¸» Á¤º¸¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

name
¿µ¹®ÀÚ ¶Ç´Â ¹ØÁÙ·Î ½ÃÀÛÇÏ´Â ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ¿­·Î, ¿µ¹®ÀÚ, ¼ýÀÚ ¶Ç´Â ¹ØÁÙ·Î ÀÌ·ç¾îÁø ¸ðµç Á¶ÇÕÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

string
¿¬¼ÓµÈ ¿µ¹®ÀÚ¿Í ¼ýÀÚ ¹× ±¸µÎÁ¡.

IF block
IF ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮸¦ ¼öÇàÇÕ´Ï´Ù. Á¶°Ç ¸ñ·ÏÀÇ ¹®ÀÚ¿­ °ªÀº Á¤¼ö¸¦ ³ªÅ¸³»¸ç ½ÃÀÛ ¶Ç´Â ³¡ °ø¹éÀÌ ¾ø´Â °æ¿ì ºñ±³¸¦ À§ÇØ ¼ýÀÚ·Î Ãë±ÞµË´Ï´Ù. ÀÌµé °ªÀº ´õÇϱâ (+) ¶Ç´Â »©±â (-) ºÎÈ£·Î ½ÃÀÛµÉ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â IF ºí·ÏÀ» Âü°íÇϽʽÿÀ.

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ.

function call
ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© Net.Data ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â ÇÔ¼ö È£Ãâ (@)À» Âü°íÇϽʽÿÀ. Á¦ÇÑ»çÇ×: REPORT ºí·ÏÀº OS/400 ȯ°æÀ» Á¦¿ÜÇϰí´Â SQL ÇÔ¼ö È£ÃâÀ» Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù.

HTML statements
Ŭ¶óÀÌ¾ðÆ® ºê¶ó¿ìÀú¿ëÀ¸·Î Çü½ÄÀÌ ÁöÁ¤µÉ HTML ÅÂ±×¿Í ÇÔ²² ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

include statement
INCLUDE ¸í·É¹®. ÆÄÀÏÀ» Àоî Net.Data ¸ÅÅ©·Î¿¡ ÅëÇÕ½Ãŵ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦¿¡ ´ëÇØ¼­´Â INCLUDE ¸í·É¹®À» Âü°íÇϽʽÿÀ.

include_url statement
INCLUDE_URL ¸í·É¹®. ´Ù¸¥ ÆÄÀÏÀ» ÀÐ¾î ¸í·É¹®ÀÌ ÁöÁ¤µÈ Net.Data ¸ÅÅ©·Î·Î ÅëÇÕ½Ãŵ´Ï´Ù. ÁöÁ¤µÈ ÆÄÀÏÀº ±¹Áö ¶Ç´Â ¿ø°Ý ¼­¹ö¿¡ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â INCLUDE_URL ¸í·É¹®À» Âü°íÇϽʽÿÀ.

row block
ROW ºí·Ï. ÇÔ¼ö È£Ãâ·ÎºÎÅÍ ¸®ÅÏµÈ °¢ ÀÚ·á Çà¿¡ ´ëÇØ Çѹø¾¿ HTML Çü½Ä ÀڷḦ Ç¥½ÃÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â ROW ºí·ÏÀ» Âü°íÇϽʽÿÀ.

while block
WHILE ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮿¡¼­ ·çÇÎÀ» ¼öÇàÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â WHILE ºí·ÏÀ» Âü°íÇϽʽÿÀ.

¹®¸Æ

REPORT ºí·ÏÀº ´ÙÀ½ ¹®¸Æ¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

REPORT ºí·ÏÀº ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹

¿¹Á¦ 1: À̸§ ¹× À§Ä¡ ¸ñ·ÏÀ» ³ªÅ¸³»´Â 2°³ ¿­·Î ÀÌ·ç¾îÁø HTML Å×À̺í

%REPORT{
<H2>Query Results</H2>
<P>Select a name for details.
<TABLE BORDER=1>
<TR><TD>Name</TD><TD>Location</TD>
%ROW{
<TR>
<TD>
<a href="/cgi-bin/db2www/name.mac/details?name=$(V1)&location=$(V2)">$(V1)</a></TD>
<TD>$(V2)</TD>
%}
</TABLE>
%}

Å×À̺íÀÇ À̸§À» ¼±ÅÃÇϸé name.mac Net.Data ¸ÅÅ©·ÎÀÇ details HTML ºí·ÏÀ» È£ÃâÇϰí URLÀÇ ÀϺÎÀÎ µÎ °ª¿¡ À̸¦ ¼Û½ÅÇÕ´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼­ À̸§¿¡ ´ëÇÑ Á»´õ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¾ò±â À§ÇØ name.mac¿¡¼­ °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ROW ºí·Ï

¸ñÀû

ÇÔ¼ö È£Ãâ·ÎºÎÅÍ ¸®ÅÏµÈ °¢ Å×À̺í ÇàÀ» ó¸®ÇÕ´Ï´Ù. Net.Data´Â °¢ Çึ´Ù Çѹø¾¿ ROW ºí·Ï³»ÀÇ ¸í·É¹®À» ó¸®ÇÕ´Ï´Ù.

±¸¹®

              .-----------------------------.
              V                             |
>>-%ROW--{-------+-----------------------+--+--%}--------------><
                 +-string----------------+
                 +-if block--------------+
                 +-variable reference----+
                 +-function call---------+
                 +-HTML statement-----------+
                 +-include statement-----+
                 +-include_url statement-+
                 '-while block-----------'
 

°ª

%ROW
ÇÔ¼ö È£Ãâ·ÎºÎÅÍ ¸®ÅÏµÈ °¢ ÀÚ·á Çà¿¡ ´ëÇØ Çѹø¾¿ Ç¥½ÃµÉ HTML Æ÷¸ËÆÃ ÀڷḦ ÁöÁ¤Çϴ Ű¿öµå.

string
¿¬¼ÓµÈ ¿µ¹®ÀÚ¿Í ¼ýÀÚ ¹× ±¸µÎÁ¡.

IF block
IF ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮸¦ ¼öÇàÇÕ´Ï´Ù. Á¶°Ç ¸ñ·ÏÀÇ ¹®ÀÚ¿­ °ªÀº Á¤¼ö¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÌ¸ç ½ÃÀÛ ¶Ç´Â ³¡ °ø¹éÀÌ ¾ø´Â °æ¿ì ºñ±³¸¦ À§ÇØ ¼ýÀÚ·Î Ãë±ÞµË´Ï´Ù. ÀÌµé °ªÀº ´õÇϱâ (+) ¶Ç´Â »©±â (-) ºÎÈ£·Î ½ÃÀÛµÉ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â IF ºí·ÏÀ» Âü°íÇϽʽÿÀ.

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ.

function call
ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â ÇÔ¼ö È£Ãâ (@)À» Âü°íÇϽʽÿÀ. Á¦ÇÑ»çÇ×: ROW´Â OS/400 ȯ°æÀ» Á¦¿ÜÇϰí´Â SQL ÇÔ¼ö È£Ãâ¿¡ ÇØ´çÇÏ´Â ÇÔ¼ö È£ÃâÀ» Æ÷ÇÔÇÒ ¼ö ¾ø½À´Ï´Ù.

HTML statements
Ŭ¶óÀÌ¾ðÆ® ºê¶ó¿ìÀú¿ëÀ¸·Î Çü½ÄÀÌ ÁöÁ¤µÉ HTML ÅÂ±×¿Í ÇÔ²² ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

include statement
INCLUDE ¸í·É¹®. ÆÄÀÏÀ» Àоî Net.Data ¸ÅÅ©·Î¿¡ ÅëÇÕ½Ãŵ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦¿¡ ´ëÇØ¼­´Â INCLUDE ¸í·É¹®À» Âü°íÇϽʽÿÀ.

include_url statement
INCLUDE_URL ¸í·É¹®. ´Ù¸¥ ÆÄÀÏÀ» ÀÐ¾î ¸í·É¹®ÀÌ ÁöÁ¤µÈ Net.Data ¸ÅÅ©·Î·Î ÅëÇÕ½Ãŵ´Ï´Ù. ÁöÁ¤µÈ ÆÄÀÏÀº ±¹Áö ¶Ç´Â ¿ø°Ý ¼­¹ö¿¡ Á¸ÀçÇÒ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â INCLUDE_URL ¸í·É¹®À» Âü°íÇϽʽÿÀ.

while block
WHILE ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮿¡¼­ ·çÇÎÀ» ¼öÇàÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â WHILE ºí·ÏÀ» Âü°íÇϽʽÿÀ.

¹®¸Æ

ROW ºí·ÏÀº ´ÙÀ½ ¹®¸Æ¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

ROW ºí·ÏÀº ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹

¿¹Á¦ 1: À̸§ ¹× À§Ä¡ ¸ñ·ÏÀ» ³ªÅ¸³»´Â 2°³ ¿­·Î ÀÌ·ç¾îÁø HTML Å×À̺í

%REPORT{
<H2>Query Results</H2>
<P>Select a name for details.
<TABLE BORDER=1>
<TR><TD>Name</TD><TD>Location</TD>
 
%ROW{
<TR>
<TD>
<a href="/cgi-bin/db2www/name.mac/details?name=$(V1)&location=$(V2)">$(V1)</a></TD>
<TD>$(V2)</TD>
%}
 
</TABLE>
%}

Å×À̺íÀÇ À̸§À» ¼±ÅÃÇϸé name.mac Net.Data ¸ÅÅ©·ÎÀÇ details HTML ºí·ÏÀ» È£ÃâÇϰí URLÀÇ ÀϺÎÀÎ µÎ °ª¿¡ À̸¦ ¼Û½ÅÇÕ´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼­ À̸§¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ Á¤º¸¸¦ ¾ò±â À§ÇØ name.mac¿¡¼­ °ªÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

TABLE ¸í·É¹®

¸ñÀû

°ü·Ã ÀÚ·áÀÇ ÁýÇÕ¿¡ ÇØ´çÇÏ´Â º¯¼ö¸¦ Á¤ÀÇÇÕ´Ï´Ù. ¿©±â¿¡´Â µ¿ÀÏÇÑ ·¹ÄÚµå ¹è¿­, Çà ¹× °¢ ÇàÀÇ Çʵ带 ¼³¸íÇÏ´Â Ä÷³ À̸§ÀÇ ¹è¿­ÀÌ Æ÷ÇԵ˴ϴÙ. Å×ÀÌºí ¸í·É¹®Àº DEFINE¹®À̳ª ºí·Ï ³»¿¡¼­¸¸ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù.

±¸¹®

>>-%TABLE--| upper limit |-------------------------------------><
 
upper limit
 
|---+--------------------+--------------------------------------|
    '-(--+-number-+---)--'
         '-ALL----'
 

°ª

%TABLE
µ¿ÀÏÇÑ ·¹ÄÚµå ¹è¿­, Çà ¹× °¢ ÇàÀÇ Çʵ带 ¼³¸íÇÏ´Â Ä÷³ À̸§ÀÇ ¹è¿­ÀÌ Æ÷ÇÔµÈ °ü·Ã ÀÚ·á ÁýÇÕÀÇ Á¤ÀǸ¦ ÁöÁ¤Çϴ Ű¿öµå.

upper limit
Å×ÀÌºí¿¡ Æ÷Ç﵃ ¼ö ÀÖ´Â ÇàÀÇ ¼ö.

number
0¿¡¼­ 9ÀÚ¸®ÀÇ ¼ýÀÚ ¹®ÀÚ¿­. Å×À̺íÀÇ Çà ¼ö¸¦ Á¦ÇÑÇÏÁö ¾Ê´Â 0°ªÀÌ Çã¿ëµË´Ï´Ù.

ALL
Å×ÀÌºí³»ÀÇ ÇàÀÇ ¼ö¸¦ Á¦ÇÑÇÏÁö ¾Ê´Â Ű¿öµå.

¹®¸Æ

TABLE¹®Àº ´ÙÀ½ ¹®¸Æ¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

TABLE¹®Àº ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹

¿¹Á¦ 1: 30°³ÀÇ Çà ¼ö »óÇÑÀ» °¡Áö´Â Net.Data Å×À̺í

%DEFINE myTable1=%TABLE(30)

¿¹Á¦ 2: »ý·«½Ã °ªÀÌ ¸ðµç ÇàÀ» »ç¿ëÇÏ´Â Net.Data Å×À̺í

%DEFINE myTable2=%TABLE

¿¹Á¦ 3: ¸ðµç ÇàÀ» ÁöÁ¤ÇÏ´Â Net.Data Å×À̺í

%DEFINE myTable3=%TABLE(ALL)

WHILE ºí·Ï

¸ñÀû

Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮸¦ ±âÃÊ·Î ·çÇÎ ±¸¼ºÀ» Á¦°øÇÕ´Ï´Ù. HTML ºí·Ï, REPORT ºí·Ï, ROW ºí·Ï, IF ºí·Ï ¹× MACRO_FUNCTION ºí·Ï¿¡ WHILE ºí·ÏÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¶°Ç ¸ñ·ÏÀÇ ¹®ÀÚ¿­ °ªÀº Á¤¼ö¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÌ¸ç ½ÃÀÛ ¶Ç´Â ³¡ °ø¹éÀÌ ¾ø´Â °æ¿ì ºñ±³¸¦ À§ÇØ ¼ýÀÚ·Î Ãë±ÞÇÕ´Ï´Ù. ÀÌµé °ªÀº ÇϳªÀÇ ´õÇϱâ (+) ¶Ç´Â »©±â (-) ºÎÈ£·Î ½ÃÀÛµÉ ¼ö ÀÖ½À´Ï´Ù.

±¸¹®

>>-%WHILE--| condition list |---{------------------------------->
 
      .--------------------------.
      V                          |
>--------+--------------------+--+--%}-------------------------><
         +-exec_sql statement-+
         +-function call------+
         +-HTML statement-----+
         +-if block-----------+
         +-while block--------+
         +-variable reference-+
         '-string-------------'
 
condition list
 
|---(--+-(--condition list--)----------------+---)--------------|
       +-condition list--&&--condition list--+
       +-condition list--||--condition list--+
       +-!--condition list-------------------+
       +-| condition |-----------------------+
       '-| term |----------------------------'
 
condition
 
|---term--+-<--+---term-----------------------------------------|
          +->--+
          +-<=-+
          +->=-+
          +-!=-+
          '-==-'
 
term
 
|---+-variable reference-+--------------------------------------|
    +-"--string--"-------+
    +-variable name------+
    '-function call------'
 

°ª

WHILE
·çÇΠ󸮸¦ ÁöÁ¤Çϴ Ű¿öµå.

condition list
Á¶°Ç°ú ±ÔÁ¤ÀÇ °ªÀ» ºñ±³ÇÕ´Ï´Ù. Á¶°Ç ¸ñ·ÏÀº ºÎ¿ï ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© ¿¬°áÇÒ ¼ö ÀÖ½À´Ï´Ù. Á¶°Ç ¸ñ·ÏÀº ´Ù¸¥ Á¶°Ç ¸ñ·Ï ³»¿¡ ÁßøµÉ ¼ö ÀÖ½À´Ï´Ù.

condition
ºñ±³ ¿¬»êÀÚ¸¦ »ç¿ëÇÏ¿© µÎ ¿ë¾î¸¦ ºñ±³ÇÏ´Â °Í. IF Á¶°ÇÀº ´ÙÀ½ µÎ Á¶°ÇÀÌ ¸ðµÎ ÂüÀÏ ¶§ ¼ýÀÚ ºñ±³·Î Ãë±ÞµË´Ï´Ù.

µÎ Á¶°Ç Áß Çϳª°¡ ÂüÀÌ ¾Æ´Ï¸é ÀϹÝÀûÀÎ ¹®ÀÚ¿­ ºñ±³°¡ ¼öÇàµË´Ï´Ù.

term
ÇÔ¼ö È£Ãâ¿¡ ´ëÇÑ º¯¼ö¸í, ¹®ÀÚ¿­, º¯¼ö ÂüÁ¶.

exec_sql statement
ȣȯ¼ºÀ» À§ÇØ Áö¿øµÇ´Â DB2WWW ¸±¸®½º 1 ¾ð¾î ¿ä¼Ò. ºÎ·Ï A. DB2 WWW ¿¬°á ¶Ç´Â DB2 ¿ùµå ¿ÍÀ̵å À¥ ¸±¸®½º 1 ¼³¸í¼­¸¦ Âü°íÇϽʽÿÀ.

function call
ÀÌÀü¿¡ Á¤ÀÇµÈ FUNCTION ¶Ç´Â MACRO_FUNCTION ºí·ÏÀ» È£ÃâÇϰųª ÁöÁ¤µÈ Àμö¸¦ »ç¿ëÇÏ¿© ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â ÇÔ¼ö È£Ãâ (@)À» Âü°íÇϽʽÿÀ.

HTML statement
Ŭ¶óÀÌ¾ðÆ® ºê¶ó¿ìÀú¿ëÀ¸·Î Çü½ÄÀÌ ÁöÁ¤µÉ HTML ÅÂ±×¿Í ÇÔ²² ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

IF block
IF ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮸¦ ¼öÇàÇÕ´Ï´Ù. Á¶°Ç ¸ñ·ÏÀÇ ¹®ÀÚ¿­ °ªÀº Á¤¼ö¸¦ ³ªÅ¸³»¸ç ½ÃÀÛ ¶Ç´Â ³¡ °ø¹éÀÌ ¾ø´Â °æ¿ì ºñ±³¸¦ À§ÇØ ¼ýÀÚ·Î Ãë±ÞµË´Ï´Ù. ÀÌµé °ªÀº ÇϳªÀÇ ´õÇϱâ (+) ¶Ç´Â »©±â (-) ºÎÈ£·Î ½ÃÀÛµÉ ¼ö ÀÖ½À´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â IF ºí·ÏÀ» Âü°íÇϽʽÿÀ.

while block
WHILE ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ 󸮿¡¼­ ·çÇÎÀ» ¼öÇàÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹Á¦´Â WHILE ºí·ÏÀ» Âü°íÇϽʽÿÀ.

variable reference
ÀÌ´Â ÀÌÀü¿¡ Á¤ÀÇµÈ º¯¼ö °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹: if VAR='abc' then $(VAR) returns the value 'abc'. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö ÂüÁ¶¸¦ Âü°íÇϽʽÿÀ.

string
¿¬¼ÓµÈ ¿µ¹®ÀÚ¿Í ¼ýÀÚ ¹× ±¸µÎÁ¡. Á¶°Ç ¸ñ·ÏÀÇ ±ÔÁ¤À» µû¸£´Â ¹®ÀÚ¿­Àº °³Çà ¹®ÀÚ¸¦ Á¦¿ÜÇÑ ¸ðµç ¹®ÀÚ¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

variable name
Çϳª ÀÌ»óÀÇ À̸§, Ãß°¡µÇ´Â °¢ À̸§Àº Á¡(.)À¸·Î °áÇյ˴ϴÙ. ±¸¹® Á¤º¸¸¦ º¸·Á¸é º¯¼ö¸íÀ» Âü°íÇϽʽÿÀ.

¹®¸Æ

WHILE ºí·ÏÀº ´ÙÀ½ ¹®¸Æ¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

WHILE ºí·ÏÀº ´ÙÀ½ ¿ä¼Ò¸¦ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹

¿¹Á¦ 1: Å×ÀÌºí¿¡ ÇàÀ» »ý¼ºÇÏ´Â WHILE ºí·Ï

%DEFINE loopCounter = "1"
 
%HTML(build_table) {
%WHILE (loopCounter <= "100") {
  %{ generate table tag and column headings %}
  %IF (loopCounter == "1")
<TABLE BORDER>
<TR>
     <TH>Item #
     <TH>Description
  </TR>
%ENDIF
 
  %{ generate individual rows %}
<TR>
<TD>
  <TD>$(loopCounter)
  <TD>@getDescription(loopCounter)
  </TR>
 
  %{ generate end table tag %}
  %IF (loopCounter == "100")
</TABLE>
%ENDIF
 
  %{ increment loop counter %}
  @dtw_add(loopCounter, "1", loopCounter)
%}
%}
 


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