¿Í»§»úä¯ÀÀÆ÷ͨ¹ý·¢ËÍ URL ¸ñʽµÄÇëÇóÀ´µ÷Óà Net.Data¡£±¾½Ú½«¸æËßÄúÈçºÎͨ¹ýÔÚ URL ÇëÇóÖÐÖ¸¶¨Ò»¸öºêÀ´µ÷Óà Net.Data¡£
·¢Ë͸ø Net.Data µÄÇëÇó¾ßÓÐÒÔϸñʽ¡£
http://server/Net.Data_invocation_path/filename/block[?name=val&...]
²ÎÊý£º
ÄúÖ±½ÓÔÚä¯ÀÀÆ÷ÖÐÖ¸¶¨´Ë URL¡£»òÕߣ¬Ò²¿ÉÒÔÔÚ HTML Á´½ÓÖÐʹÓÃËü£¬»òʹÓÃ±íµ¥À´¹¹½¨Ëü£¬ÈçÏÂËùʾ£º
²ÎÊý£º
ʾÀý
ÒÔÏÂʾÀýÑÝʾÁ˵÷Óà Net.Data µÄ²»Í¬·½Ê½¡£
Àý 1£ºÊ¹Óà HTML Á´µ÷Óà Net.Data£º
<a href="http://server/cgi-bin/db2www/myMacro.d2w/report"> . . . </a>
Àý 2£º ʹÓñíÀ´µ÷Óà Net.Data
<form method=post action="http://server/cgi-bin/db2www/myMacro.d2w/report"> . . . </form>
ÒÔÏÂÕ½ÚÃèÊöÁË HTML Á´ºÍ±í£¬ÒÔ¼°ÓйØÈçºÎʹÓÃÁ´ºÍ±íÀ´µ÷Óà Net.Data µÄ¸ü¶àÐÅÏ¢£º
Èç¹ûÒª´´×÷Ò»¸ö Web Ò³Ãæ£¬¿ÉÒÔ´´½¨Ò»¸ö HTML Á´£¬¶øÕâ¸öÁ´½«Ö´ÐÐÒ»¸ö HTML ¿é¡£µ±ä¯ÀÀÆ÷ǰ µÄÓû§µ¥»÷±»¶¨ÒåΪ HTML Á´µÄÎı¾»òͼÏóʱ£¬Net.Data ¾Í½«Ö´ÐкêÖÐµÄ HTML ¿é¡£
Òª´´½¨Ò»¸ö HTML Á´£¬¿ÉʹÓà HTML <a> ±ê¼Ç¡£È·¶¨Ï£ÍûÓÃ×÷Ö¸Ïò Net.Data ºêµÄ³¬Á´ µÄÎı¾»òͼÐΣ¬È»ºóÔÚÁ½¶Ë¼ÓÉÏ <a> ºÍ </a> ±ê¼Ç¡£ÔÚ <a> ±ê¼ÇµÄ HREF ÊôÐÔÖУ¬ Ö¸¶¨ºêºÍ HTML ¿é¡£
ÒÔÏÂʾÀýÏÔʾÁËÕâÑùÒ»¸öÁ´£ºµ±Óû§ÔÚ Web Ò³ÃæÉÏÑ¡ÔñÎı¾ "List all monitors" ʱ£¬ Õâ¸öÁ´½«Ê¹µÃÒ»¸ö SQL ²éѯ¿ªÊ¼Ö´ÐС£
<a href="http://server/cgi-bin/db2www/listA.d2w/report"> List all monitors</a>
µ¥»÷µ÷Óúê listA.d2w µÄÁ´½Ó£¬ËüÓÐÒ»¸öÃûΪ "report" µÄ HTML ¿é£¬ÈçÏÂÀýËùʾ£º
%DEFINE DATABASE="MNS97" %FUNCTION(DTW_SQL) myQuery() { SELECT MODNO, COST, DESCRIP FROM EQPTABLE WHERE TYPE='MONITOR' %} %HTML (report){ @myQuery() %}
²éѯ½«·µ»ØÒ»¸ö°üº¬Ðͺš¢³É±¾ºÍ EQPTABLE ±í¸ñÖжÔÿ¸ö¼àÊÓÆ÷ËùÃèÊöÐÅÏ¢µÄ±í¸ñ¡£´ËÀýͨ¹ýÉú³ÉÒ»¸öȱʡ±¨¸æÏÔʾÁ˲éѯµÄ½á¹û¡£²Î¼û±¨¸æ¿éÒÔ»ñÈ¡ÓйØÈçºÎʹÓà REPORT ¿é¶¨ÖƱ¨¸æµÄÐÅÏ¢¡£
Äú¿ÉÒÔʹÓà HTML ±íÀ´¶¯Ì¬µØ¶¨ÖÆ Net.Data ºêµÄÖ´ÐС£ÕâЩ±íÔÊÐíÓû§ÌṩÊäÈëÖµ£¬ ¶øÕâЩֵ½«Ó°ÏìºêµÄÖ´ÐÐºÍ Net.Data ¹¹½¨µÄ Web Ò³ÃæµÄÄÚÈÝ¡£
ÒÔÏÂʾÀý¹¹½¨ÔÚHTML Á´ÖмàÊÓÆ÷ÁбíµÄʾÀýÉÏ£¬ËüʹµÃä¯ÀÀÆ÷ǰµÄÓû§¿ÉÒÔ Ê¹ÓÃÒ»¸ö¼òµ¥µÄ HTML ±íÀ´Ñ¡ÔñÒªÇóÏÔʾÐÅÏ¢µÄ²úÆ·ÀàÐÍ¡£
<h1>Hardware Query Form</h1> < hr> <form method=post action="/cgi-bin/db2www/equiplst.d2w/report"> <p>What type of hardware do you want to see?</p> <menu> <li><input type="radio" name="hdware" value="mon" checked /> Monitors</li> <li><input type="radio" name="hdware" value="pnt" /> Pointing devices</li> <li><input type="radio" name="hdware" value="prt" /> Printers</li> <li><input type="radio" name="hdware" value="scn" /> Scanners</li> </menu> <input type="submit" value="submit" /> </form>
µ±ä¯ÀÀÆ÷ǰµÄÓû§×÷³öÁËËûÃǵÄÑ¡Ôñ²¢µ¥»÷¡°Ìá½»¡±°´Å¥Ö®ºó£¬Web ·þÎñÆ÷½«´¦Àí µ÷Óà Net.Data µÄ FORM ±ê¼ÇµÄ ACTION ²ÎÊý¡£È»ºó£¬Net.Data ½«Ö´ÐÐ equiplst.d2w ºê ÖÐµÄ Report ¿é£º
%DEFINE DATABASE="MNS97" %FUNCTION(DTW_SQL) myQuery(){ SELECT MODNO, COST, DESCRIP FROM EQPTABLE WHERE TYPE='$(hdware)' %REPORT{ <h3>Here is the list you requested</h3> %ROW{ < hr> $(N1): $(V1), $(N2): $(V2) <p>$(N3): $(V3) %} %} %} %HTML (report){ @myQuery() %}
ÔÚÉÏÊöʾÀýÖУ¬SQL Óï¾äÖÐ TYPE=$(hdware) µÄÖµÊÇ´Ó HTML ±íµÄÊäÈëÖÐ »ñµÃµÄ¡£ÓÐ¹Ø ROW ¿éÖÐËùʹÓõıäÁ¿µÄÏêϸ˵Ã÷£¬ ²Î¼û Net.Data ²Î¿¼¡£
FILE ÊäÈëÀàÐÍÊǾ¹ý Net.Data µÄÌØÊâ´¦ÀíµÄÒ»ÖÖÊäÈëÀàÐÍ¡£½èÖú´ËÊäÈëÀàÐÍ£¬ Óû§¿ÉÒÔ½«ÎļþÉÏ´«ÖÁ·þÎñÆ÷£¬ÒÔ±ãÓÉ·þÎñÆ÷É쵀 Net.Data »òÈÎºÎÆäËûÓ¦ÓóÌÐò½øÐнøÒ»²½µÄ´¦Àí¡£
Net.Data ²»¶ÔÉÏ´«µÄÎļþÖ´ÐÐÈκÎת»»£¬¸ÃÎļþ±»ÊÓΪÊǶþ½øÖÆÊý¾Ý¡£ÉÏ´«µÄÎļþ´æ´¢ÔÚÓÉ DTW_UPLOAD_DIR Ö¸¶¨µÄĿ¼ÖУ¬²¢±»¸³ÓèΨһµÄÃû³Æ£¬´ËÃû³ÆÊÇʹÓÃÏÂÁйæÔòÈ·¶¨µÄ£º
Óï·¨£º
MacroFileName + '.' + FormVarName + '.' + UniqueIdentifier + '.' + FormFileName
YYYYMMDDHHMMSSCCC + '-' + PID + '-' + TID
ÆäÖУº
YYYY = Äê·Ý MM = ÔÂ·Ý DD = Ìì HH = Сʱ (00-23) SS = Ãë CCC = ºÁÃë PID = ½ø³Ì ID TID = Ïß³Ì ID
ʾÀý£º
Ê×ÏÈ£¬ÔÚ Net.Data ³õʼ»¯ÎļþÖÐÉèÖà DTW_UPLOAD_DIR£º
DTW_UPLOAD_DIR /home/http/pub/upload
È»ºó¹¹ÔìÒ»¸öµ÷ÓÃÒ»¸öºêµÄ±íµ¥£¬²¢½«ÎļþÃûºÍÎļþ×÷Ϊ²ÎÊý´«ËÍ£º
<form method="post" enctype="multipart/form-data" action="/netdatadev/form.dtw/report"> <input type="text" name="name" value="john doe" />Enter name <input type="text" name="zipno" value="55901" />Enter number <input type="file" name="resume" value="myresume.txt" />Résumé <input type="submit" /> </form>
Èç¹ûÓû§ÒªÌá½»¸Ã±íµ¥£¬²¢½ÓÊÜȱʡֵ£¬ÔòÔÚ·þÎñÆ÷ÉÏÉú³ÉµÄÎļþ½«ÀàËÆÓÚ£º
/home/http/pub/upload/form.dtw.resume.20000313112341275-6245-021.myresume.txt