IBM Books

ÂüÁ¶¼­


¸ÅÅ©·Î ¾ð¾î ±¸¹®

ÀÌ Àý¿¡¼­´Â Net.Data ¸ÅÅ©·Î¿¡¼­ »ç¿ëµÇ´Â ¾ð¾î ±¸Á¶¸¦ ¼³¸íÇÕ´Ï´Ù.

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

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

±¸¹®
¾ð¾î ±¸¹®ÀÇ ³í¸® ±¸Á¶¸¦ º¸¿©ÁÝ´Ï´Ù.

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

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

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

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

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

ÁÖ¼® ºí·Ï

¸ñÀû

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

COMMENT ºí·ÏÀº Net.Data ÃʱâÈ­ ÆÄÀÏ¿¡¼­µµ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

±¸¹®

>>-%{---ÅØ½ºÆ®---%}--------------------------------------------><
 

°ª

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

¹®¸Æ

ÁÖ¼®Àº 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          %}
%}
 

¿¹ 5: Net.Data ÃʱâÈ­ ÆÄÀÏÀÇ ÁÖ¼®

%{ changes: removed RETURN_CODE parm and DTW_DEFAULT ENVIRONMENT statement %}
...
ENVIRONMENT (DTW_SQL) dtwsql (IN LOCATION, DB2SSID, DB2PLAN, TRANSACTION_SCOPE)
ENVIRONMENT (DTW_ODBC) odbcdll (IN LOCATION, TRANSACTION_SCOPE)
ENVIRONMENT (DTW_PERL) perldll ()
ENVIRONMENT (DTW_REXX) rexxdll ()
ENVIRONMENT (DTW_FILE) filedll ()
ENVIRONMENT (DTW_APPLET) appldll ()
ENVIRONMENT (DTW_SYSTEM) sysdll ()

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

¸ñÀû

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

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

±¸¹®

>>-%DEFINE----+----------------------------+-------------------->
              |             (1)            |
              '-(--+-STATIC---------+---)--'
                   |           (1)  |
                   '-TRANSIENT------'
 
>-----+-| Ç׸ñ Á¤ÀÇ |-----------------------------+------------><
      '-{--+------------------------------+---%}--'
           |  .------------------------.  |
           |  V                        |  |
           '----+-define entry------+--+--'
                '-include statement-'
 
Ç׸ñ Á¤ÀÇ
 
                             .--------------------------.
                             V                          |
|---+-variable name--=--+-"-----+--------------------+--+---"---+-+->
    |                   |       +-string-------------+          | |
    |                   |       +-variable reference-+          | |
    |                   |       '-function call------'          | |
    |                   |    .--------------------------.       | |
    |                   |    V                          |       | |
    |                   +-{-----+--------------------+--+---%}--+ |
    |                   |       +-string-------------+          | |
    |                   |       +-variable reference-+          | |
    |                   |       +-function call------+          | |
    |                   |       '-new_line-----------'          | |
    |                   +-exec statement------------------------+ |
    |                   +-table statement-----------------------+ |
    |                   +-envvar statement----------------------+ |
    |                   +-| Á¶°Ç º¯¼ö |-------------------------+ |
    |                   '-| Ãà¾à Á¶°Ç º¯¼ö |--------------------' |
    '-list statement----------------------------------------------'
 
>---------------------------------------------------------------|
 
Á¶°Ç º¯¼ö
 
|---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------'
 
Ãà¾à Á¶°Ç º¯¼ö
 
              .--------------------------.
              V                          |
|---?----+-"-----+--------------------+--+---"---+--------------|
         |       +-string-------------+          |
         |       +-variable reference-+          |
         |       '-function call------'          |
         |    .--------------------------.       |
         |    V                          |       |
         '-{-----+--------------------+--+---%}--'
                 +-string-------------+
                 +-variable reference-+
                 '-function call------'
 

ÁÖ:

  1. STATIC ¹× TRANSIENTÀº ¿µ¼ÓÀû ¸ÅÅ©·Î¿¡ ´ëÇÑ Å°¿öµå·Î, ÇöÀç OS/400 ¿î¿µ üÁ¦¿¡¼­¸¸ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

°ª

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

STATIC
º¯¼ö°¡ ¿µ¼Ó Æ®·£Àè¼Ç³»ÀÇ ¸ÅÅ©·Î È£Ãâµé »çÀÌ¿¡¼­ ÀÌÀÇ °ªÀ» À¯ÁöÇϵµ·Ï ÁöÁ¤Çϴ Ű¿öµå. ¿µ¼Ó ¸ÅÅ©·ÎÀÇ °æ¿ì À̰ÍÀÌ »ý·«½Ã °ªÀÔ´Ï´Ù.

TRANSIENT
º¯¼ö°¡ ¸ÅÅ©·Î È£Ãâµé »çÀÌ¿¡¼­ ÀÌÀÇ °ªÀ» À¯ÁöÇÏÁö ¾Êµµ·Ï ÁöÁ¤Çϴ Ű¿öµå. ºñ¿µ¼Ó ¸ÅÅ©·ÎÀÇ °æ¿ì À̰ÍÀÌ »ý·«½Ã °ªÀÔ´Ï´Ù.

define entry:

variable name
º¯¼ö¸¦ ½Äº°ÇÏ´Â À̸§. ±¸¹®¿¡ ´ëÇØ¼­´Â º¯¼ö¸íÀ» ÂüÁ¶ÇϽʽÿÀ.

string
¿µ¹®ÀÚ, ¼ýÀÚ ¹× ±¸µÎÁ¡ÀÇ ÀÓÀÇ Á¶ÇÕ. ¹®ÀÚ¿­ÀÌ Å« µû¿ÈÇ¥¾È¿¡ ³ªÅ¸³ª¸é, °³Çà ¹®ÀÚ¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

variable reference
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª '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 ºí·ÏÀ̳ª ¸í·É¹®Àº IF ºí·ÏÀÇ ³»ºÎ ¶Ç´Â Net.Data ¸ÅÅ©·ÎÀÇ ¼±¾ð ºÎºÐ¿¡¼­ ´Ù¸¥ ¸ðµç ºí·ÏÀÇ ¿ÜºÎ¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.

Á¦ÇÑ

¿¹

¿¹ 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: ÀÌ Á¶°Ç º¯¼ö ¿¹¿¡¼­´Â °á°ú °ª¿¡ ³Î(NULL)ÀÌ Æ÷ÇÔµÇÁö ¾ÊÀº °æ¿ì º¯¼ö varÀÌ ÀÎ¿ë ºÎÈ£("")¾È¿¡ °á°ú °ªÀ» °®µµ·Ï ÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÝ´Ï´Ù.

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

ENVVAR ¸í·É¹®

¸ñÀû

DEFINE ºí·Ï¿¡¼­ º¯¼ö¸¦ ȯ°æ º¯¼ö·Î Á¤ÀÇÇÕ´Ï´Ù. ENVVAR º¯¼ö°¡ ÂüÁ¶µÇ¸é, Net.Data´Â ȯ°æ º¯¼öÀÇ ÇöÀç °ªÀ» µ¿ÀÏÇÑ À̸§À¸·Î ¸®ÅÏÇÕ´Ï´Ù.

±¸¹®

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

¹®¸Æ

ENVVAR ¸í·É¹®Àº DEFINE ºí·ÏÀ̳ª ¸í·É¹®ÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù.

°ª

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

Á¦ÇÑ

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

¿¹

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

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

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

¸ñÀû

º¯¼ö°¡ ÂüÁ¶µÇ°Å³ª ÇÔ¼ö°¡ È£ÃâµÉ ¶§ ½ÇÇàµÇ´Â ¿ÜºÎ ÇÁ·Î±×·¥À» ÁöÁ¤ÇÕ´Ï´Ù.

Net.Data´Â ¸ÅÅ©·Î¿¡¼­ ½ÇÇà °¡´É º¯¼ö¸¦ ¹ß°ßÇϸé, ´ÙÀ½ÀÇ ¹æ¹ýÀ¸·Î ÂüÁ¶µÈ ½ÇÇà °¡´É ÇÁ·Î±×·¥ÀÌ ÀÖ´ÂÁö Á¶È¸ÇÕ´Ï´Ù.

  1. Net.Data ÃʱâÈ­ ÆÄÀÏ¿¡¼­ EXEC_PATH¸¦ Ž»öÇÕ´Ï´Ù. EXEC_PATH¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëÀº ¿î¿µ üÁ¦¿¡ ´ëÇÑ Net.Data °ü¸® ¹× ÇÁ·Î±×·¡¹Ö ¾È³»¼­¿¡¼­ ±¸¼º ÀåÀ» ÂüÁ¶ÇϽʽÿÀ.

  2. ÇÁ·Î±×·¥À» ãÁö ¸øÇÒ °æ¿ì Net.Data´Â ½Ã½ºÅÛ¿¡¼­ Á¤ÀÇÇÑ µð·ºÅ丮¸¦ Ž»öÇÕ´Ï´Ù. ½ÇÇà °¡´É ÇÁ·Î±×·¥À» ãÀ» °æ¿ì, Net.Data´Â ±× ÇÁ·Î±×·¥À» ¼öÇàÇÕ´Ï´Ù.

±ÇÇÑ ºÎ¿© Á¤º¸: Net.Data¸¦ ½ÇÇàÇÏ´Â »ç¿ëÀÚ ID´Â EXEC¹®À̳ª ºí·Ï¿¡ ÂüÁ¶µÈ ¸ðµç ÆÄÀÏ¿¡ ´ëÇÑ ¾×¼¼½º ±ÇÇÑÀ» °¡Áö°í ÀÖ¾î¾ß ÇÕ´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ¿î¿µ üÁ¦¿¡ ´ëÇÑ Net.Data °ü¸® ¹× ÇÁ·Î±×·¡¹Ö ¾È³»¼­ÀÇ ±¸¼º Àå¿¡¼­ 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
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª 'abc'¸¦ ¸®ÅÏÇÕ´Ï´Ù. ±¸¹®¿¡ ´ëÇØ¼­´Â º¯¼ö ÂüÁ¶¸¦ ÂüÁ¶ÇϽʽÿÀ.

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

¹®¸Æ

EXEC ºí·ÏÀ̳ª ¸í·É¹®Àº ´ÙÀ½ÀÇ ÄÁÅØ½ºÆ®¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

EXEC ºí·ÏÀ̳ª ¸í·É¹®¿¡´Â ´ÙÀ½ÀÇ ¿ä¼Ò°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

´ÙÀ½ÀÇ Net.Data Á¦°ø ¾ð¾î ȯ°æÀº 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 ºí·ÏÀÇ ½ÇÇà °¡´É ¸í·É¹®Àº ¾ð¾î ȯ°æ¿¡¼­ Á÷Á¢ ÇØ¼®µÇ´Â ÀζóÀÎ ¸í·É¹®ÀÌ µÇ°Å³ª ¿ÜºÎ ÇÁ·Î±×·¥¿¡ ´ëÇÑ È£ÃâÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù.

ÇÔ¼ö ºí·Ï³»ÀÇ EXEC ºí·Ï

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

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

¾ð¾î ¸í·É¹®¿¡ Ư¼ö ¹®ÀÚ »ç¿ë

Net.Data ¾ð¾î ±¸¹®°ú ÀÏÄ¡ÇÏ´Â ¹®ÀÚ°¡ ÇÔ¼ö ºí·ÏÀÇ ¾ð¾î ¸í·É¹® ¼½¼Ç¿¡¼­ ±¸¹®»óÀ¸·Î À¯È¿ÇÑ ³»Æ÷ ÇÁ·Î±×·¥ ÄÚµå(¿¹: REXX ¶Ç´Â Perl)ÀÇ ÀϺηΠ»ç¿ëµÇ´Â °æ¿ì, À̵éÀº Net.Data ¾ð¾î ±¸¹®À¸·Î À߸ø ÇØ¼®µÇ¾î ¸ÅÅ©·Î¿¡¼­ ¿À·ù³ª ¿¹»óÄ¡ ¸øÇÑ °á°ú¸¦ ÃÊ·¡ÇÒ ¼ö ÀÖ½À´Ï´Ù.

¿¹¸¦ µé¾î, Perl ÇÔ¼ö´Â COMMENT ºí·Ï ºÐ¸®¹®ÀÚ %{¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ÅÅ©·Î°¡ ¼öÇàµÇ´Â °æ¿ì, %{ ¹®ÀÚ´Â COMMENT ºí·ÏÀÇ ½ÃÀÛÀ¸·Î ÇØ¼®µË´Ï´Ù. ÀÌ °æ¿ì Net.Data´Â COMMENT ºí·ÏÀÇ ³¡À» ã°Ô µÇ°í, ÇÔ¼ö ºí·ÏÀÇ ³¡À» ã°Ô µÇ¸é COMMENT ºí·ÏÀÇ ³¡À» ãÀº °ÍÀ¸·Î »ý°¢ÇÕ´Ï´Ù. Net.Data´Â ´Ù½Ã ÇÔ¼ö ºí·ÏÀÇ ³¡À» ã°Ô µÇ°í ÇÔ¼ö ºí·ÏÀÇ ³¡À» ãÀ» ¼ö ¾ø´Â °æ¿ì ¿À·ù¸¦ ¹ß»ý½Ãŵ´Ï´Ù.

³»Æ÷µÈ ÇÁ·Î±×·¥ Äڵ带 Net.Data¿¡¼­ Ư¼ö ¹®ÀÚ·Î ÇØ¼®ÇÏÁö ¾Ê°Ô Çϸ鼭 Net.Data Ư¼ö ¹®ÀÚ¸¦ ³»Æ÷µÈ ÇÁ·Î±×·¥ ÄÚµåÀÇ ÀϺηΠ»ç¿ëÇÏ·Á¸é ´ÙÀ½ ¹æ¹ý Áß Çϳª¸¦ »ç¿ëÇϽʽÿÀ.

¿¹¸¦ µé¾î, ´ÙÀ½°ú °°Àº Perl ÇÔ¼ö´Â COMMENT ºí·Ï ºÐ¸®¹®ÀÚ, %{¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¸¦ Perl ¾ð¾î ¸í·É¹®ÀÇ ÀϺηΠÆ÷ÇÔÇÕ´Ï´Ù.

%function(DTW_PERL) func() {
  ...
  for $num_words (sort bynumber keys %{ $Rtitles{$num} }) {
  &make_links($Rtitles{$num}{$num_words});
  }
  ...
 %}

Net.Data°¡ %{ ¹®ÀÚ¸¦ Net.Data COMMENT ºí·Ï ºÐ¸®¹®ÀÚ°¡ ¾Æ´Ñ Perl ¼Ò½º ÄÚµå·Î ÇØ¼®ÇÏ°Ô ÇÏ·Á¸é ´ÙÀ½ Áß ÇÑ ¹æ¹ýÀ¸·Î ÇÔ¼ö¸¦ ´Ù½Ã ¾²½Ê½Ã¿À.

±¸¹®

>>-%FUNCTION--(--lang_env--)--function_name--| ¸Å°³º¯¼ö Àü´Þ ½ºÆå |-->
 
     .-;--------------------------------------.
>----+-| ¸®ÅÏ ½ºÆå |--{--| ÇÔ¼ö ³»¿ë |----%}--+----------------><
 
¸Å°³º¯¼ö Àü´Þ ½ºÆå
 
|---(--+---------------------------------------------+---)------|
       |  .-,-------------------------------------.  |
       |  |      (1)                              |  |
       |  V .-IN-------.                          |  |
       '----+----------+---+-----------+---name---+--'
            +-OUT------+   '-datatype--'
            '-INOUT----'
 
¸®ÅÏ ½ºÆå
 
|---+----------------------+------------------------------------|
    '-RETURNS--(--name--)--'
 
ÇÔ¼ö ³»¿ë
 
|---+-------------------------------+--------------------------->
    |  .--------------------------. |
    |  V                          | |
    +----inline statement block---+-+
    '-exec block--------------------'
 
>-----+-----------------------------------------------+---------|
      |  .---------------------.                      |
      |  V               (2)   |                      |
      +----report block--------+---+----------------+-+
      |                            '-message block--' |
      |                .--------------------------.   |
      |                V                          |   |
      '-message block-----+--------------------+--+---'
                          |              (2)   |
                          '-report block-------'
 

ÁÖ:

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

  2. ¹Ýº¹ report ºí·ÏÀº ´ÙÀ½¿¡ ´ëÇØ Çã¿ëµË´Ï´Ù.

°ª

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

lang_env
ÇÔ¼ö ³»¿ëÀ» ó¸®ÇÏ´Â ¾ð¾î ȯ°æ. ÀÚ¼¼ÇÑ ³»¿ëÀº Net.Data °ü¸® ¹× ÇÁ·Î±×·¡¹Ö ¾È³»¼­¿¡ ³ª¿Í ÀÖ½À´Ï´Ù.

function_name
Á¤Àǵǰí ÀÖ´Â ÇÔ¼öÀÇ À̸§À¸·Î, ¿µ¹®ÀÚ³ª ¹ØÁÙ·Î ½ÃÀ۵Ǹç ÀÓÀÇ·Î Á¶ÇÕµÈ ¿µ¹®ÀÚ, ¼ýÀÚ ¶Ç´Â ¹ØÁÙÀ» Æ÷ÇÔÇÏ´Â ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ¿­ÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù.

¸Å°³º¯¼ö Àü´Þ ½ºÆå:

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

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

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

datatype
¸Å°³º¯¼öÀÇ ÀÚ·á À¯ÇüÀ» ÁöÁ¤ÇÕ´Ï´Ù. ¸Å°³º¯¼öÀÇ ÀÚ·á À¯Çü. ÀúÀå ÇÁ·Î½Ãµà¾îÀÇ Áö¿øµÇ´Â ÀÚ·á À¯Çü¿¡ ´ëÇÑ ¸ñ·ÏÀº, Net.Data ÂüÁ¶¼­ÀÇ ¿î¿µ üÁ¦ ºÎ·ÏÀ» ÂüÁ¶ÇϽʽÿÀ.

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

¸®ÅÏ ½ºÆå:

RETURNS
ÇÔ¼ö°¡ ¿Ï·áµÈ ÈÄ ¾ð¾î ȯ°æ¿¡ ÀÇÇØ ÇÒ´çµÈ ÇÔ¼ö °ªÀÌ µé¾î ÀÖ´Â º¯¼ö¸¦ ¼±¾ðÇÕ´Ï´Ù.

ÇÔ¼ö ³»¿ë:

inline statement block
ÇÔ¼ö Á¤ÀÇ¿¡ ÁöÁ¤µÈ ¾ð¾î ȯ°æ(¿¹: REXX, SQL ¶Ç´Â Perl)ÀÇ ±¸¹®»ó À¯È¿ÇÑ ¸í·É¹®. »ç¿ëÇϰí ÀÖ´Â ¾ð¾î ȯ°æ¿¡ ´ëÇÑ ¼³¸íÀº Net.Data °ü¸® ¹× ÇÁ·Î±×·¡¹Ö ¾È³»¼­¿¡ ³ª¿Í ÀÖ½À´Ï´Ù. ±¸¹® ¹× »ç¿ë¹ý¿¡ ´ëÇØ¼­´Â ÇÁ·Î±×·¡¹Ö ¾ð¾îÀÇ ÇÁ·Î±×·¡¹Ö ÂüÁ¶¼­¸¦ ÂüÁ¶ÇϽʽÿÀ. ÀζóÀÎ ¸í·É¹® ºí·ÏÀ» ³ªÅ¸³»´Â ¹®ÀÚ¿­¿¡´Â Net.Data º¯¼ö ÂüÁ¶¿Í ÇÔ¼ö È£ÃâÀ» Æ÷ÇÔ½Ãų ¼ö ÀÖ´Â µ¥, À̵éÀº ÀζóÀÎ ¸í·É¹® ºí·Ï(ÇÁ·Î±×·¥)À» ½ÇÇàÇϱâ Àü¿¡ Æò°¡µË´Ï´Ù.

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

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

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

¹®¸Æ

FUNCTION ºí·ÏÀº ´ÙÀ½ ÄÁÅØ½ºÆ®¿¡ µé¾î ÀÖ½À´Ï´Ù.

Á¦ÇÑ

¿¹

´ÙÀ½ ¿¹Á¦´Â ¹ü¿ë ¿¹Á¦·Î½á ¸ðµç ¾ð¾î ȯ°æ¿¡ Àû¿ëµÇÁö´Â ¾Ê½À´Ï´Ù. ƯÁ¤ ¾ð¾î ȯ°æ¿¡¼­ 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 ÇÔ¼ö È£ÃâÀÇ °ªÀº sÀÇ °ªÀÎ "long"À¸·Î ´ëüµË´Ï´Ù.

¿¹ 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 ÇÁ·Î±×·¥À¸·ÎºÎÅÍ REXX º¯¼ö a, b ¹× d°¡ °Ë»öµÇ°í, ÀÌÀÇ °ªÀÌ Net.Data º¯¼ö w, x ¹× z¿¡ ÁöÁ¤µË´Ï´Ù. my_rexx_pgm FUNCTION ºí·ÏÀÇ Á¤ÀÇ¿¡´Â RETURNS ÀýÀÌ »ç¿ëµÇÁö ¾ÊÀ¸¹Ç·Î, @my_rexx_pgm ÇÔ¼ö È£ÃâÀÇ °ªÀº ³Î(NULL) ¹®ÀÚ¿­ ""ÀÌ µÇ°Å³ª(¸®ÅÏ Äڵ尡 0ÀÎ °æ¿ì), REXX ÇÁ·Î±×·¥ ¸®ÅÏ ÄÚµåÀÇ °ªÀÌ µË´Ï´Ù(¸®ÅÏ Äڵ尡 0ÀÌ ¾Æ´Ñ °æ¿ì).

¿¹ 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 ¾ð¾î ȯ°æÀ¸·Î Àü´ÞµÇ¸é, ¾ð¾î ȯ°æÀº named pipe¸¦ ÀÛ¼ºÇϰí ȯ°æ º¯¼ö DTWPIPE¸¦ ÆÄÀÌÇÁ À̸§À¸·Î ¼³Á¤ÇÕ´Ï´Ù.

±×·± ´ÙÀ½, ¿ÜºÎ ÇÁ·Î±×·¥ÀÌ C system() ÇÔ¼ö È£ÃâÀ» »ç¿ëÇÏ¿© È£ÃâµË´Ï´Ù. ¿ÜºÎ ÇÁ·Î±×·¥Àº ÆÄÀÌÇÁ¸¦ ¾²±â Àü¿ëÀ¸·Î ¿­¾î Ç¥ÁØ ½ºÆ®¸² ÆÄÀÏÀÎ °Íó·³ ÆÄÀÌÇÁ¿¡ Ãâ·Â ¸Å°³º¯¼öÀÇ °ªÀ» ±â·ÏÇÕ´Ï´Ù. ¿ÜºÎ ÇÁ·Î±×·¥Àº STDOUT¿¡ ±â·ÏÇÏ¿© HTML Ãâ·ÂÀ» »ý¼ºÇÕ´Ï´Ù. ÀÌ ¿¹Á¦¿¡¼­, ½Ã½ºÅÛ ³¯Â¥ ÇÁ·Î±×·¥ÀÇ Ãâ·ÂÀº FUNCTION ºí·ÏÀÇ RETURNS Àý¿¡¼­ ½Äº°µÇ´Â º¯¼öÀÎ result¿¡ ÁöÁ¤µË´Ï´Ù. 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¿¡¼­, System ¾ð¾î ȯ°æÀº Perl ÇÁ·Î±×·¥À» ÇØ¼®ÇÏ´Â ¹æ¹ýÀº ¾ËÁö ¸øÇÏÁö¸¸, ¿ÜºÎ ÇÁ·Î±×·¥À» È£ÃâÇÏ´Â ¹æ¹ýÀº ¾Ë°í ÀÖ½À´Ï´Ù. EXEC ºí·ÏÀº perl ÇÁ·Î±×·¥À» ¿ÜºÎ ÇÁ·Î±×·¥À¸·Î È£ÃâÇϵµ·Ï Áö½ÃÇÕ´Ï´Ù. ½ÇÁ¦ Perl ¾ð¾î ¸í·É¹®Àº ¿ÜºÎ Perl ÇÁ·Î±×·¥¿¡ ÀÇÇØ ÇØ¼®µË´Ï´Ù. ¿¹ 5¿¡´Â Perl ¾ð¾î ȯ°æÀÌ Perl ¾ð¾î ¸í·É¹®À» Á÷Á¢ ÇØ¼®ÇÒ ¼ö ÀÖÀ¸¹Ç·Î EXEC ºí·ÏÀÌ ¾ø½À´Ï´Ù.

ÇÔ¼ö È£Ãâ (@)

¸ñÀû

FUNCTION ºí·Ï, MACRO_FUNCTION ºí·Ï ¶Ç´Â Àμö°¡ ÁöÁ¤µÈ ³»Àå ÇÔ¼ö¸¦ È£ÃâÇÕ´Ï´Ù. ÇÔ¼ö°¡ ³»Àå ÇÔ¼ö°¡ ¾Æ´Ñ °æ¿ì, ÇÔ¼ö È£ÃâÀ» ÁöÁ¤Çϱâ Àü¿¡ À̸¦ Net.Data ¸ÅÅ©·Î¿¡ Á¤ÀÇÇØ¾ß ÇÕ´Ï´Ù.

±¸¹®

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

°ª

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

variable name
º¯¼ö¸¦ ½Äº°ÇÏ´Â À̸§. ±¸¹®¿¡ ´ëÇØ¼­´Â º¯¼ö¸íÀ» ÂüÁ¶ÇϽʽÿÀ.

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

variable reference
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª '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)
%}

¿¹ 4: INOUT ¸Å°³º¯¼öÀÇ »ç¿ëÀ» ¼³¸íÇÏ´Â ¸ÅÅ©·Î.


%DEFINE a = "initial value of a"
%FUNCTION(DTW_REXX) func1(INOUT x) {
Say 'value at start of function:<br>
Say 'x =' x
Say '
<p>
'
x = "new value of a"
%REPORT {

<p>
value at start of report block:<br>
x = $(x)<br>
@dtw_assign(x, "newest value of a")
value at end of report block:<br>
x = $(x)<br>
%}
%}
%HTML(report) {
initial values:<br>
a = $(a)<br>
@func1(a)
value after function call:<br>
a = $(a)<br>
%}

°á°ú Ãâ·Â:

initial values:
a = initial value of a
value at start of function:
x = initial value of a
value at start of report block:
x = new value of a
value at end of report block:
x = newest value of a
value after function call:
a = newest value of a

HTML ºí·Ï

¸ñÀû

À¥ ÆäÀÌÁö Ç¥½Ã ¹æ¹ýÀ» Á¤ÀÇÇÕ´Ï´Ù. ½ÇÇàÇÒ HTML ºí·ÏÀÇ À̸§Àº Net.Data È£Ãâ½Ã¿¡ URL¿¡ ÁöÁ¤µË´Ï´Ù. HTML ºí·Ï¿¡´Â ´ëºÎºÐÀÇ Net.Data ¸ÅÅ©·Î ¾ð¾î ¸í·É¹®°ú HTML ¹× Javascript¿Í °°Àº À¯È¿ÇÑ Ç¥½Ã ¸í·É¹®ÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

±¸¹®

>>-%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 ¾ð¾î ¿ä¼Ò. ºÎ·Ï B, DB2 WWW ¿¬°á ¶Ç´Â DB2 World Wide Web ¸±¸®½º 1 Ã¥ÀÚ¸¦ ÂüÁ¶ÇϽʽÿÀ.

variable reference
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª '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: ¸Ó¸®¸» ¹× ²¿¸®¸»À» À§ÇÑ include ÆÄÀÏÀÌ ÀÖ´Â 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"
%}

¿¹ 2: À̸§¿¡ ¸¶Ä§Ç¥°¡ Æ÷ÇÔµÈ HTML ºí·Ï

%HTML(my.report){
%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 ºí·ÏÀº Çϳª ÀÌ»óÀÇ Á¶°ÇÀ» Å×½ºÆ®Çϰí Á¶°Ç Å×½ºÆ®ÀÇ °á°ú¿¡ µû¶ó ¸í·É¹® ºí·ÏÀ» ¼öÇàÇϵµ·Ï ÇÕ´Ï´Ù. ¶Ç´Ù¸¥ IF ºí·Ï³»¿¡ IF ºí·ÏÀ» Áßø½Ãų ¼ö ÀÖÀ» »Ó ¾Æ´Ï¶ó Net.Data ¸ÅÅ©·ÎÀÇ ¼±¾ðºÎ¿¡ ÀÖ´Â IF ºí·Ï, HTML ºí·Ï, MACRO_FUNCTION ºí·Ï, REPORT ºí·Ï, WHILE ºí·Ï ¹× ROW ºí·ÏÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Á¶°Ç ¸ñ·ÏÀÇ ¹®ÀÚ¿­ °ªÀº À̰ÍÀÌ Á¤¼ö¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­ÀÌ°í ¼±Çà ¶Ç´Â ÈÄ¹Ì °ø¹éÀÌ ¾ø´Â °æ¿ì ºñ±³¸¦ À§ÇØ ¼ýÀÚ·Î Ãë±ÞµË´Ï´Ù. ¿©±â¿¡´Â ÇϳªÀÇ Ç÷¯½º(+) ¶Ç´Â ¸¶À̳ʽº(-) ±âÈ£°¡ ¼±ÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ»çÇ×: Net.Data´Â À¯µ¿ ¼Ò¼öÁ¡ ¼ö¿Í °°ÀÌ Á¤¼ö°¡ ¾Æ´Ñ ¼ýÀÚÀÇ ¼ýÀÚ ºñ±³´Â Áö¿øÇÏÁö ¾Ê½À´Ï´Ù.

ÁßøµÈ IF ºí·Ï: IF ºí·Ï ±¸¹®ÀÇ ±ÔÄ¢Àº ¸ÅÅ©·Î¿¡¼­ ºí·ÏÀÇ À§Ä¡¿¡ ÀÇÇØ °áÁ¤µË´Ï´Ù. IF ºí·ÏÀÌ ¼±¾ðºÎ¿¡¼­ ´Ù¸¥ ºí·ÏÀÇ ¿ÜºÎ¿¡ ÀÖ´Â IF ºí·Ï³»¿¡ ÁßøµÇ¾î ÀÖ´Â °æ¿ì, ¿ÜºÎ ºí·ÏÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Â ¸ðµç ¿ä¼Ò¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. IF ºí·ÏÀÌ IF ºí·Ï¿¡ ÀÖ´Â ´Ù¸¥ ºí·Ï³»¿¡ ÁßøµÇ¾î ÀÖ´Â °æ¿ì, ³»ºÎ¿¡ ÀÖ´Â ºí·ÏÀÇ ±¸¹® ±ÔÄ¢À» µû¸¨´Ï´Ù.

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

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

ÃÖ´ë 1024°³ÀÇ IF ºí·ÏÀ» Áßø½Ãų ¼ö ÀÖ½À´Ï´Ù.

±¸¹®

>>-%IF--| Á¶°Ç ¸ñ·Ï |------------------------------------------->
 
>-----| statement_block |--| else_if spec |--%ENDIF------------><
 
Á¶°Ç ¸ñ·Ï
 
|---(--+-(--condition list--)----------------+---)--------------|
       +-condition list--&&--condition list--+
       +-condition list--||--condition list--+
       +-!--condition list-------------------+
       +-| Á¶°Ç |----------------------------+
       '-| ¿ë¾î |----------------------------'
 
statement_block
 
    .---------------------------------.
    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---------------'
 
Á¶°Ç
 
|---term--+-<--+---term-----------------------------------------|
          +->--+
          +-<=-+
          +->=-+
          +-!=-+
          '-==-'
 
¿ë¾î
 
|---+-variable_name-----------------------+---------------------|
    +-variable reference------------------+
    +-function call-----------------------+
    |    .-------------------------.      |
    |    V                         |      |
    '-"----+-string-------------+--+---"--'
           +-variable reference-+
           '-function call------'
 
else_if spec
 
|---+---------------------------------------------------------------+->
    |     .----------------------------------------------------.    |
    |     V                                                    |    |
    '--+----%ELIF--(--condition_list--)--| statement_block |---+-+--'
       '-%ELSE--| statement_block |------------------------------'
 
>---------------------------------------------------------------|
 

ÁÖ:

  1. ÀÌ ¾ð¾î ±¸¹®Àº IF ºí·ÏÀÌ ¸ÅÅ©·ÎÀÇ ¼±¾ðºÎ¿¡ ÀÖ´Â ´Ù¸¥ ºí·ÏÀÇ ¿ÜºÎ¿¡ À§Ä¡ÇÑ °æ¿ì¿¡ À¯È¿ÇÕ´Ï´Ù.

  2. ÀÌ ¾ð¾î ±¸¹®Àº IF ºí·ÏÀÌ HTML ºí·Ï, MACRO_FUNCTION ºí·Ï, REPORT ºí·Ï, ROW ºí·Ï ¶Ç´Â WHILE ºí·Ï¿¡ À§Ä¡ÇÑ °æ¿ì¿¡ À¯È¿ÇÕ´Ï´Ù.

°ª

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

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

statement_block
´ÙÀ½°ú °°Àº À¯È¿ÇÑ Net.Data ¸ÅÅ©·Î ±¸¹®. ¸ÅÅ©·Î ±¸¹®ÀÌ À¯È¿ÇÏ°Ô µÇ´Â ÄÁÅØ½ºÆ®¸¦ ¾Ë·Á¸é µµÇ¥ ¹× Á¦ÇÑ»çÇ×À» ÂüÁ¶ÇϽʽÿÀ.

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

exec_sql statement
ȣȯ¼ºÀ» À§ÇØ Áö¿øµÇ´Â DB2WWW ¸±¸®½º 1 ¾ð¾î ¿ä¼Ò. ºÎ·Ï B, DB2 WWW ¿¬°á ¶Ç´Â DB2 World Wide Web ¸±¸®½º 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
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª '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 ºí·Ï¿¡ À§Ä¡ÇÒ °æ¿ì, ÀÌ IF ºí·Ï¿¡´Â ´ÙÀ½ÀÇ ¿ä¼Ò°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

ÃÖ´ë 1024°³ÀÇ IF ºí·ÏÀ» Áßø½Ãų ¼ö ÀÖ½À´Ï´Ù.

¿¹

¿¹ 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 ¸í·É¹®¿¡ ÁöÁ¤µÈ µð·ºÅ丮¿¡¼­ Include ÆÄÀÏÀ» ã½À´Ï´Ù.

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

Net.Data´Â ¸ÅÅ©·Î 󸮽ÿ¡¸¸ INCLUDE ¸í·É¹®À» ½ÇÇàÇÏ°í Æ÷ÇÔµÈ ÆÄÀÏÀÇ ³»¿ëÀ» ¸ÅÅ©·ÎÀÇ INCLUDE ¸í·É¹® À§Ä¡¿¡ »ðÀÔÇÕ´Ï´Ù. Æ÷ÇÔµÈ ÆÄÀÏÀÇ À̸§¿¡ ÀÖ´Â º¯¼ö ÂüÁ¶´Â ÀÌ ÆÄÀÏÀÇ ³»¿ëÀÌ ½ÇÇàµÉ ¿¹Á¤ÀÎ °æ¿ì¸¸ ¾Æ´Ï¸é INCLUDE¹®ÀÌ Ã³À½ ½ÇÇàµÉ ¶§ ÇØ¼®µË´Ï´Ù.

INCLUDE ¸í·É¹®ÀÌ ROW ¶Ç´Â WHILE ºí·Ï¿¡ ÀÖ´Â °æ¿ì, Net.Data´Â INCLUDE ¸í·É¹®À» ¹Ýº¹ÀûÀ¸·Î ½ÇÇàÇÏÁö ¾Ê½À´Ï´Ù. Net.Data´Â ROW ¶Ç´Â WHILE ºí·ÏÀ» óÀ½ ½ÇÇàÇÒ ¶§¸¸ INCLUDE ¸í·É¹®À» ½ÇÇàÇÏ°í Æ÷ÇÔµÈ ÆÄÀÏÀÇ ³»¿ëÀ» ºí·Ï¿¡ ÅëÇÕÇÑ ´ÙÀ½ Æ÷ÇÔµÈ ÆÄÀÏÀÇ ³»¿ëÀ» »ç¿ëÇÏ¿© ROW ¶Ç´Â WHILE ºí·ÏÀ» ¹Ýº¹ÀûÀ¸·Î ½ÇÇàÇÕ´Ï´Ù.

±ÇÇÑ ºÎ¿© °ü·Ã»çÇ×: Net.Data¸¦ ½ÇÇàÇÏ´Â »ç¿ëÀÚ ID´Â 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
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª 'abc'¸¦ ¸®ÅÏÇÕ´Ï´Ù. ±¸¹®¿¡ ´ëÇØ¼­´Â º¯¼ö ÂüÁ¶¸¦ ÂüÁ¶ÇϽʽÿÀ.

¹®¸Æ

INCLUDE ¸í·É¹®Àº ´ÙÀ½ÀÇ ÄÁÅØ½ºÆ®¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

INCLUDE ¸í·É¹®¿¡´Â ´ÙÀ½ÀÇ ¿ä¼Ò°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

¹®ÀÚ¿­¿¡´Â ÇÔ¼ö È£ÃâÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

ÃÖ´ë 10°³ÀÇ 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 ¸í·É¹®À» »ç¿ëÇϸé ÀÀ¿ëÇÁ·Î±×·¥ »ç¿ëÀÚ°¡ Á¦Ãâ ¹öưÀ» ¼±ÅÃÇÏÁö ¾Ê¾Æµµ ´Ù¸¥ ¸ÅÅ©·Î¿¡¼­ ¸ÅÅ©·Î¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù.

Net.Data´Â ¸ÅÅ©·Î 󸮽ÿ¡¸¸ INCLUDE_URL ¸í·É¹®À» ½ÇÇàÇÏ°í Æ÷ÇÔµÈ ÆÄÀÏÀÇ ³»¿ëÀ» ¸ÅÅ©·ÎÀÇ INCLUDE_URL ¸í·É¹® À§Ä¡¿¡ »ðÀÔÇÕ´Ï´Ù. Æ÷ÇÔµÈ ÆÄÀÏÀÇ À̸§¿¡ ÀÖ´Â º¯¼ö ÂüÁ¶´Â ÀÌ ÆÄÀÏÀÇ ³»¿ëÀÌ ½ÇÇàµÉ ¿¹Á¤ÀÎ °æ¿ì¸¸ ¾Æ´Ï¸é INCLUDE_URL ¸í·É¹®ÀÌ Ã³À½ ½ÇÇàµÉ ¶§ ÇØ¼®µË´Ï´Ù.

INCLUDE_URL ¸í·É¹®ÀÌ ROW ¶Ç´Â WHILE ºí·Ï¿¡ ÀÖ´Â °æ¿ì, Net.Data´Â INCLUDE_URL ¸í·É¹®À» ¹Ýº¹ÀûÀ¸·Î ½ÇÇàÇÏÁö ¾Ê½À´Ï´Ù. Net.Data´Â ROW ¶Ç´Â WHILE ºí·ÏÀ» óÀ½ ½ÇÇàÇÒ ¶§¸¸ INCLUDE_URL ¸í·É¹®À» ½ÇÇàÇÏ°í Æ÷ÇÔµÈ ÆÄÀÏÀÇ ³»¿ëÀ» ºí·Ï¿¡ ÅëÇÕÇÑ ´ÙÀ½ Æ÷ÇÔµÈ ÆÄÀÏÀÇ ³»¿ëÀ» »ç¿ëÇÏ¿© ROW ¶Ç´Â WHILE ºí·ÏÀ» ¹Ýº¹ÀûÀ¸·Î ½ÇÇàÇÕ´Ï´Ù.

±¸¹®

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

°ª

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

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

variable reference
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª 'abc'¸¦ ¸®ÅÏÇÕ´Ï´Ù. ±¸¹®¿¡ ´ëÇØ¼­´Â º¯¼ö ÂüÁ¶¸¦ ÂüÁ¶ÇϽʽÿÀ.

¹®¸Æ

INCLUDE_URL ¸í·É¹®Àº ´ÙÀ½ÀÇ ÄÁÅØ½ºÆ®¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

INCLUDE_URL ¸í·É¹®¿¡´Â ´ÙÀ½ÀÇ ¿ä¼Ò°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

OS/390¿¡¼­ INCLUDE_URL ÆÄÀÏÀº ÃÖ´ë 256KBÀÏ ¼ö ÀÖ½À´Ï´Ù. ±âŸ ¿î¿µ üÁ¦¿¡´Â Á¦ÇÑÀÌ ¾ø½À´Ï´Ù.

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 °æ·Î¸¦ °»½ÅÇÒ Çʿ䰡 ¾ø½À´Ï´Ù. stringÀÌ ½½·¡½¬·Î ½ÃÀÛµÇÁö ¾Ê´Â °æ¿ì, 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
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª 'abc'¸¦ ¸®ÅÏÇÕ´Ï´Ù. ±¸¹®¿¡ ´ëÇØ¼­´Â º¯¼ö ÂüÁ¶¸¦ ÂüÁ¶ÇϽʽÿÀ.

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

variable name
º¯¼ö¸¦ ½Äº°ÇÏ´Â À̸§. ±¸¹®¿¡ ´ëÇØ¼­´Â º¯¼ö¸íÀ» ÂüÁ¶ÇϽʽÿÀ.

¹®¸Æ

LIST ¸í·É¹®Àº ´ÙÀ½ÀÇ ÄÁÅØ½ºÆ®¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

LIST ¸í·É¹®¿¡´Â ´ÙÀ½ÀÇ ¿ä¼Ò°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

¿¹

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

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

MACRO_FUNCTION ºí·Ï

¸ñÀû

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

±¸¹®

>>-%MACRO_FUNCTION--function_name--| ¸Å°³º¯¼ö Àü´Þ ½ºÆå |------->
 
                    (4)
>-----| ¸®ÅÏ ½ºÆå |-------{--| ÇÔ¼ö ³»¿ë |----%}---------------->
 
      .--------------------------.
      V                          |
>--------+--------------------+--+--%}-------------------------><
         |              (3)   |
         '-report block-------'
 
¸Å°³º¯¼ö Àü´Þ ½ºÆå
 
|---(--+-----------------------------+---)----------------------|
       |  .-,---------------------.  |
       |  |      (1)              |  |
       |  V .-IN-------.          |  |
       '----+----------+---name---+--'
            +-OUT------+
            '-INOUT----'
 
¸®ÅÏ ½ºÆå
 
     (4)
|----------+----------------------+-----------------------------|
           '-RETURNS--(--name--)--'
 
ÇÔ¼ö ³»¿ë
 
    .----------------------------------.
    V                                  |
|------+----------------------------+--+------------------------|
       +-exec_sql statement---------+
       +-variable reference---------+
       +-if block-------------------+
       +-function call--------------+
       +-HTML statement-------------+
       +-include statement----------+
       |                       (2)  |
       +-include_url statement------+
       '-while block----------------'
 

ÁÖ:

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

  2. INCLUDE_URL ¸í·É¹®Àº OS/400¿¡¼­ Áö¿øµÇÁö ¾Ê½À´Ï´Ù.

  3. MACRO_FUNCTION ºí·Ï³»ÀÇ REPORT ºí·ÏÀº OS/400, OS/2, Windows NT ¹× UNIX¿¡¼­ Áö¿øÇÕ´Ï´Ù.

  4. RETURNS ¸í·É¹®Àº OS/400¿¡¼­¸¸ Áö¿øµË´Ï´Ù.

°ª

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

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

¸Å°³º¯¼ö Àü´Þ ½ºÆå:

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

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

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

name
¿µ¹®ÀÚ ¶Ç´Â ¹ØÁÙ·Î ½ÃÀÛÇÏ´Â ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ¿­·Î, ¿µ¹®ÀÚ, ¼ýÀÚ ¶Ç´Â ¹ØÁÙ·Î ÀÌ·ç¾îÁø ¸ðµç Á¶ÇÕÀÌ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù. nameÀº Net.Data Å×À̺íÀ̳ª °á°ú ¼¼Æ®¸¦ ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù.

¸®ÅÏ ½ºÆå:

RETURNS
ÇÔ¼ö°¡ ¿Ï·áµÈ ÈÄ ÇÔ¼ö °ªÀ» Æ÷ÇÔÇÏ´Â º¯¼ö¸¦ ¼±¾ðÇÕ´Ï´Ù.

ÇÔ¼ö ³»¿ë:

exec_sql
ȣȯ¼ºÀ» À§ÇØ Áö¿øµÇ´Â DB2WWW ¸±¸®½º 1 ¾ð¾î ¿ä¼Ò. ºÎ·Ï B, DB2 WWW ¿¬°á ¶Ç´Â DB2 World Wide Web ¸±¸®½º 1 Ã¥ÀÚ¸¦ ÂüÁ¶ÇϽʽÿÀ.

variable reference
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª '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 ºí·ÏÀ» ÂüÁ¶ÇϽʽÿÀ.

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

¹®¸Æ

MACRO_FUNCTION ºí·ÏÀº ´ÙÀ½ÀÇ ÄÁÅØ½ºÆ®¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

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                                                                                   |
>--------+-----------------------------------------------------------------------------+--+>
         '--+-| ¸®ÅÏ ÄÚµå ½ºÆå |--+--:---| ¸Þ¼¼Áö ÅØ½ºÆ® ½ºÆå |----+----------------+--'
            '-| SQLSTATE |--------'                                '-| Á¶Ä¡ ½ºÆå |--'
 
>----%--}------------------------------------------------------><
 
¸®ÅÏ ÄÚµå ½ºÆå
 
|---+-DEFAULT---------------+-----------------------------------|
    +-+DEFAULT--------------+
    +- -DEFAULT-------------+
    +-+----+---msg_code-----+
    | +- --+                |
    | '-+--'                |
    +-include statement-----+
    '-include_url statement-'
 
SQLSTATE
 
|---SQLSTATE--:------state_id-----------------------------------|
 
¸Þ¼¼Áö ÅØ½ºÆ® ½ºÆå
 
          .--------------------------.
          V                          |
|----+-"-----+--------------------+--+---"---+------------------|
     |       +-string-------------+          |
     |       +-variable reference-+          |
     |       +-function call------+          |
     |       '-(new_line)---------'          |
     |    .--------------------------.       |
     |    V                          |       |
     +-{-----+--------------------+--+---%}--+
     |       +-string-------------+          |
     |       +-variable reference-+          |
     |       '-function call------'          |
     +-include statement---------------------+
     '-include_url statement-----------------'
 
Á¶Ä¡ ½ºÆå
 
         .-EXIT-----.
|---+-:--+----------+--------+----------------------------------|
    |    '-CONTINUE-'        |
    +-include statement------+
    '-include_url statement--'
 

°ª

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

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

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

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

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

  • RETURN_CODE°¡ 0º¸´Ù Å©°Å³ª ÀÛ°í, 0ÀÌ ¾Æ´Õ´Ï´Ù.

  • ¸®ÅÏ Äڵ忡 Á¤È®È÷ ÀÏÄ¡ÇÏ´Â °ªÀÌ ÁöÁ¤µÇÁö ¾Ê¾Ò½À´Ï´Ù.

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

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

SQLSTATE
°øÅë ¿À·ù Á¶°Ç¿¡ ´ëÇÑ °øÅë Äڵ带 ÀÀ¿ëÇÁ·Î±×·¥¿¡ Á¦°øÇϴ Ű¿öµå. SQLSTATE °ªÀº SEL Ç¥ÁØ¿¡ µé¾î ÀÖ´Â SQLSTATE ½ºÆå¿¡ ±âÃÊÇϸç ÄÚµå ü°è´Â IBMÀÇ ¸ðµç SQL¿¡¼­ µ¿ÀÏÇÕ´Ï´Ù.

state_id
SQLSTATE. Çü½ÄÀÌ ccsssÀÎ 5ÀÚ(¹ÙÀÌÆ®)·Î ±¸¼ºµÈ ¿µ¼ýÀÚ ¹®ÀÚ¿­·Î ¿©±â¼­ cc´Â Ŭ·¡½º¸¦ ³ªÅ¸³»¸ç sss´Â ºÎ¼Ó Ŭ·¡½º¸¦ ³ªÅ¸³À´Ï´Ù.

¸Þ¼¼Áö ÅØ½ºÆ® ½ºÆå
RETURN_CODE°¡ ÇöÀçÀÇ ¸Þ¼¼Áö ¸í·É¹®³»ÀÇ return_code °ª°ú ÀÏÄ¡ÇÒ °æ¿ì À¥ ºê¶ó¿ìÀú¿¡ Àü¼ÛµÇ´Â ¹®ÀÚ¿­.

string
¿µ¹®ÀÚ, ¼ýÀÚ ¹× ±¸µÎÁ¡ÀÇ ÀÓÀÇ Á¶ÇÕ. ¹®ÀÚ¿­ÀÌ Å« µû¿ÈÇ¥¾È¿¡ ³ªÅ¸³ª¸é, °³Çà ¹®ÀÚ¸¦ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.

variable reference
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª 'abc'¸¦ ¸®ÅÏÇÕ´Ï´Ù. ±¸¹®¿¡ ´ëÇØ¼­´Â º¯¼ö ÂüÁ¶¸¦ ÂüÁ¶ÇϽʽÿÀ.

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

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

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

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

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

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

¹®¸Æ

MESSAGE ºí·ÏÀº ´ÙÀ½ÀÇ ÄÁÅØ½ºÆ®¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

Á¦ÇÑ

MESSAGE ºí·Ï¿¡´Â ´ÙÀ½ÀÇ ¿ä¼Ò°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

OS/390, OS/2, Windows NT ¹× UNIX ¿î¿µ üÁ¦ÀÇ °æ¿ì: SQL ÇÔ¼ö¸¦ SQL ÇÔ¼ö ³»¿¡¼­ È£ÃâÇÒ ¼ö ¾ø½À´Ï´Ù.

¿¹

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

%{ local message block inside a FUNCTION block %}
%FUNCTION(DTW_REXX) my_function() {
  %EXEC { my_command.cmd %}
%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>"%}      : exit
  %}

¿¹ 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
links 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
links 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
ÀÌ °ªÀº Net.Data Å×À̺íÀ̳ª °á°ú ¼¼Æ®¸¦ ³ªÅ¸³À´Ï´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº Net.Data Administration & Programming GuideÀÇ º¸°í¼­ ºí·Ï ºÎºÐÀ» ÂüÁ¶ÇϽʽÿÀ.

string
¿µ¹®ÀÚ, ¼ýÀÚ ¹× ±¸µÎÁ¡ÀÇ ÀÓÀÇ Á¶ÇÕ.

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

variable reference
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª 'abc'¸¦ ¸®ÅÏÇÕ´Ï´Ù. ±¸¹®¿¡ ´ëÇØ¼­´Â º¯¼ö ÂüÁ¶¸¦ ÂüÁ¶ÇϽʽÿÀ.

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

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 ºí·Ï¿¡´Â ´ÙÀ½ÀÇ ¿ä¼Ò°¡ Æ÷Ç﵃ ¼ö ÀÖ½À´Ï´Ù.

OS/390ÀÇ °æ¿ì: REPORT ºí·ÏÀº MACRO_FUNCTION ºí·Ï¿¡¼­ Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.

¿¹

¿¹ 1: À̸§ ¹× À§Ä¡ÀÇ ¸ñ·ÏÀ» ³ªÅ¸³»´Â µÎ Ä÷³À¸·Î ±¸¼ºµÈ HTML Å×À̺í

%FUNCTION(DTW_SQL) mytable() {
%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 statements-------+
                 +-include statement-----+
                 +-include_url statement-+
                 '-while block-----------'
 

°ª

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

string
¿µ¹®ÀÚ, ¼ýÀÚ ¹× ±¸µÎÁ¡ÀÇ ÀÓÀÇ Á¶ÇÕ.

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

variable reference
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª 'abc'¸¦ ¸®ÅÏÇÕ´Ï´Ù. ±¸¹®¿¡ ´ëÇØ¼­´Â º¯¼ö ÂüÁ¶¸¦ ÂüÁ¶ÇϽʽÿÀ.

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

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: À̸§ ¹× À§Ä¡ÀÇ ¸ñ·ÏÀ» ³ªÅ¸³»´Â µÎ Ä÷³À¸·Î ±¸¼ºµÈ 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 º¯¼ö¸¦ ÂüÁ¶ÇÒ ¶§, Net.Data´Â Å×À̺íÀÇ ³»¿ëÀ» ÀÏ¹Ý ¹®ÀÚ Å×À̺í·Î, DTW_HTML_TABLE º¯¼ö°¡ YES·Î ¼³Á¤µÈ °æ¿ì HTML ÆÄÀϷΠǥ½ÃÇÕ´Ï´Ù.

±¸¹®

>>-%TABLE--| »óÇÑ |--------------------------------------------><
 
»óÇÑ
 
|---+--------------------+--------------------------------------|
    '-(--+-number-+---)--'
         '-ALL----'
 

°ª

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

»óÇÑ
Å×ÀÌºí¿¡ Æ÷ÇÔ½Ãų ¼ö ÀÖ´Â Çà ¼ö. »óÇÑ °ªÀÌ ÁöÁ¤µÇÁö ¾ÊÀ¸¸é, Å×ÀÌºí¿¡´Â ¼ö¿¡ °ü°è¾øÀÌ ÇàÀ» Æ÷ÇÔ½Ãų ¼ö ÀÖ½À´Ï´Ù.

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 ºí·Ï

¸ñÀû

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

±¸¹®

                                .-----------------------------.
                                V                             |
>>-%WHILE--| Á¶°Ç ¸ñ·Ï |---{-------+-----------------------+--+->
                                   +-exec_sql statement----+
                                   +-function call---------+
                                   +-HTML statement--------+
                                   +-if block--------------+
                                   +-include statement-----+
                                   +-include_url statement-+
                                   +-while block-----------+
                                   +-variable reference----+
                                   '-string----------------'
 
>----%}--------------------------------------------------------><
 
Á¶°Ç ¸ñ·Ï
 
|---(--+-(--condition list--)----------------+---)--------------|
       +-condition list--&&--condition list--+
       +-condition list--||--condition list--+
       +-!--condition list-------------------+
       +-| Á¶°Ç |----------------------------+
       '-| ¿ë¾î |----------------------------'
 
Á¶°Ç
 
|---term--+-<--+---term-----------------------------------------|
          +->--+
          +-<=-+
          +->=-+
          +-!=-+
          '-==-'
 
¿ë¾î
 
|---+-variable_name-----------------------+---------------------|
    +-variable reference------------------+
    +-function call-----------------------+
    |    .-------------------------.      |
    |    V                         |      |
    '-"----+-string-------------+--+---"--'
           +-variable reference-+
           '-function call------'
 

°ª

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

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

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

ÂüÀÌ ¾Æ´Ñ Á¶°ÇÀÌ ÀÖ´Â °æ¿ì, ÀϹÝÀûÀÎ ¹®ÀÚ¿­ ºñ±³°¡ ¼öÇàµË´Ï´Ù.

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

exec_sql statement
ȣȯ¼ºÀ» À§ÇØ Áö¿øµÇ´Â DB2WWW ¸±¸®½º 1 ¾ð¾î ¿ä¼Ò. ºÎ·Ï B, DB2 WWW ¿¬°á ¶Ç´Â DB2 World Wide Web ¸±¸®½º 1 Ã¥ÀÚ¸¦ ÂüÁ¶ÇϽʽÿÀ.

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

HTML statement
Ŭ¶óÀ̾ðÆ®ÀÇ ºê¶ó¿ìÀú¿¡ ÀûÇÕÇÏ°Ô Çü½ÄÈ­ÇÒ HTML ű׻Ӹ¸ ¾Æ´Ï¶ó ¿µ¹®ÀÚ ¶Ç´Â ¼ýÀÚ ¹®ÀÚ°¡ Æ÷ÇԵ˴ϴÙ.

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

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

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

while block
WHILE ºí·Ï. Á¶°ÇºÎ ¹®ÀÚ¿­ ó¸®¿Í ´õºÒ¾î ·çÇÎÀ» ó¸®ÇÕ´Ï´Ù. ±¸¹® ¹× ¿¹´Â WHILE ºí·ÏÀ» ÂüÁ¶ÇϽʽÿÀ.

variable reference
º¯¼öÀÇ °ªÀ» ¸®ÅÏÇϸç, $ ¹× ()À¸·Î ÁöÁ¤µË´Ï´Ù. ¿¹¸¦ µé¾î, VAR='abc'ÀÏ °æ¿ì, $(VAR)´Â °ª '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)
%}
%}
 
 
 


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