DB2 Extender 包含一個名為 extender.d2w 的 Net.Data 巨集檔。Web 伺服器執行巨集檔時,巨集檔會執行 SQL 陳述式來呼叫 DB2 Extender UDF。Web 瀏覽器顯 示巨集檔傳回的結果。 如圖 24所示,每一頁結果亦顯示產生該結果的 SQL 陳述式。 圖 25顯示範例 Net.Data 巨集檔的內容。
若要執行範例 Net.Data 巨集檔,請在 Web 瀏覽器中輸入下列 URL: http://your server/cgi-bin/db2www/extender.d2w/startHere
其中 your server 是指您的 Web 伺服器名稱。
圖 24. 執行範例 Net.Data 巨集檔的 Web 應用程式
![]() |
%{ ------------------------------------------------------------------------ %} %{ Copyright International Business Machines Corporation, 1998. %} %{ All rights reserved. %} %{ %} %{ 範例 Net.Data 巨集,顯示如何呼叫影像、音效及視訊 %} %{ Extender UDF。 %} %{ %} %{ 執行前,請將此巨集放在您的 MACRO_PATH Root 中,確定 tmplobs %} %{ 目錄存在於 web 伺服器的 document root 之下,並建立 %} %{ 資料庫,供執行 Extender 範例程式 %} %{ 'enable' 及 'populate' 時使用。執行 'enable' 及 'populate'。若您的 %} %{ 資料庫名稱不是為 'testdb2',則需要變更 %} %{ 下列 DATABASE 的定義。Extender 環境變數 %} %{ DB2MMEXPORT 需要設定,讓 Net.Data 所用的案例指向 %} %{ web 伺服器的 <document root>/tmplobs 目錄。然後重新啟動 DB2 %} %{ 及 Extender,使變數生效。 %} %{ 若未執行 Net.Data 的 Connection Manager,您就必須要 %} %{ 提供 LOGIN 及 PASSWORD 給資料庫。若您不熟悉這些指示, %} %{ 請至下列網址參考 Net.Data 文件: %} %{ http://www.software.ibm.com/data/netdata/docs (或 Extender 範例程式的 %} %{ Extender 文件)。 %} %{ %} %{ 若要不要顯示 SQL 陳述式,請將下列 SHOWSQL 的值 %} %{ 變更為 "no"。 %} %{ ------------------------------------------------------------------------ %} %{ ------------------------------------------------------------------------ %} %{ Definitions section %} %{ ------------------------------------------------------------------------ %} %define{ DATABASE="testdb2" SHOWSQL="yes" %} %{ ------------------------------------------------------------------------ %} %{ SQL functions %} %{ ------------------------------------------------------------------------ %} %function (DTW_SQL) startHereSQL(){ select artist, title, stock_no, price from sobay_catalog %REPORT{ <table border="2" bgcolor="#b1b1b1"> <tr><th>Artist <th> Title <th> Stock<th> Number <th> Price </tr> %ROW{ <tr><td> $(V_artist) <td> $(V_title) <td> $(V_stock_no) <td> $(V_price) <tr> %} </table> %} %} %function (DTW_SQL) addThumbsSQL(){ select cast(mmdbsys.thumbnail(covers) as blob(10000)), cast(mmdbsys.thumbnail(video) as blob(3000)), mmdbsys.comment(music), artist, title, price, stock_no from sobay_catalog %REPORT{ <table border="2" bgcolor="#b1b1b1"> <tr><th>Cover <th>Video <th>Audio <th>Artist <th>Title <th>Price </tr> %ROW{ <tr><td>< a href="showCover?stock_no=$(V_stock_no)"><img src="$V1)"></a> <td>< a href="getVideo?stock_no=$(V_stock_no)"><img src="$V2)"></a> <td>< a href="getAudio?stock_no=$(V_stock_no)&filename=$V3")>[Listen]</a> <td> $(V_artist) <td> $(V_title) <td> $(V_price) </tr> %} </table> %} %} %function (DTW_SQL) showCoverSQL(){ select cast(mmdbsys.content(covers, 'GIF') as blob(150000)), mmdbsys.format(covers) from sobay_catalog where stock_no = '$(stock_no)' %REPORT{ %ROW{ <img src="$(V1) "> <br><br><b>Original image format: $(V2)</b>%} %} %} %{ 下列 Content 呼叫依賴於適當地設定 DB2MMEXPORT, 才能指向 web 伺服器文件根目錄下的 tmplobs 目錄。%} %function (DTW_SQL) showVideoSQL(){ select mmdbsys.comment(video), mmdbsys.content(video, mmdbsys.comment(video), 1), mmdbsys.format(video) from sobay_catalog where stock_no = '$(stock_no)' %REPORT{ %ROW{ <a href="/tmplobs/$(V1)"><i><b> Play Video Clip></b></i></a> <br><br><b>Format: $(V3) <br>(Note: NT/Win95 may not come with a decompressor<br>for this video format. OS/2 Warp does.)</br> %} %} %} %{ 下列 Content 呼叫依賴於適當地設定 DB2MMEXPORT, 才能指向 web 伺服器文件根目錄下的 tmplobs 目錄。%} %function (DTW_SQL) showAudioSQL(){ select mmdbsys.comment(music), mmdbsys.content(music, mmdbsys.comment(music), 1), mmdbsys.format(music) from sobay_catalog where stock_no = '$(stock_no)' %REPORT{ %ROW{ < a href="/tmplobs/$(V1) "<i><b>Play Audio Clip</b></i></a> <br><br><b>Format: $(V3)</b> %} %} %} %{ ------------------------------------------------------------------------ %} %{ HTML 區段 %} %{ 例如,http://<your server>/cgi-bin/db2www/extender.d2w/startHere %} %{ -------------------------------------------------------------------------%} %{ 例如,http:// %{ 例如,http:// %HTML(startHere){ <html> <head><title>UDB Extender 巨集範例:簡式橫列報表 </title></head> <body bgcolor="#ffffff"> <font color="#3300ff" size="3"><b>若下方未出現資料,您可能需要 執行 UDB Extender 範例程式 <i>enable</i> 及 <i>populate</i>。 extender.d2w 巨集的第一個 HTML 區段,只是擷取 UDB Extender 範例資料庫中所有橫列的所有傳統資料。 %if ( "$(SHOWSQL)" == "yes" || "$(SHOWSQL)" == "YES" ) <br><br> 根據預設值,此巨集產生的每一頁中顯示建立 此頁所用的 SQL。這裡列出此頁的 SQL 陳述式: %else <br> %endif </b></font> <br>@startHereSQL() <br><b>按一下< a href="addThumbs"><i>此處 </i></a>,顯示 影像/音效/視訊資料的縮圖及鏈結。</b> </body> </html> %} %HTML(addThumbs){ <html> <head><title>UDB Extender 巨集範例:新增縮圖 </title></head> <body bgcolor="#ffffff"> <font color="#3300ff" size="3"><b>此頁增加專輯封面縮圖 及鏈結,以顯示資料庫的多媒體內容。若要存取 多媒體內容: <ul> <li> 按一下 CD 封面縮圖,以檢視原來大小的圖片 <li> 按一下 "視訊縮圖",以檢視視訊 <li> 按一下 "[收聽]" 鏈結,以收聽音效片段 </ul> </b></font> @addThumbsSQL() <br><b>按一下< a href="startHere"><i>此處 </i></a>,回到首頁。</b> </body> </html> %} %HTML(showCover){ <html> <head><title>UDB Extender 巨集範例:項目封面 $(stock_no)</title></head> <body bgcolor="#ffffff"> <font color="#3300ff" size="3"><b>此頁中,巨集取得全形封面 影像,並將影像轉換成瀏覽器可顯示的 GIF 格式: </b></font><br><br> <table width="400" border="2" bgcolor="#b1b1b1" cellpadding="5"> <tr><td align=center> @showCoverSQL() <tr><td align=center> <b>庫存號碼:$(stock_no)</b> </table> <br><b>回到<a href="addThumbs"><i>前頁 </i></a>.</b> </body> </html> %} %HTML(getVideo){ <html> <head><title>UDB Extender 巨集範例:項目的視訊片段 $(stock_no)</title></head> <body bgcolor="#ffffff"> <font color="#3300ff" size="3"><b>此頁中,您可以觀賞視訊片段: </b></font><br><br> <table width="400" border="2" bgcolor="#b1b1b1" cellpadding="5"> <tr><td align=center> @showVideoSQL() <tr><td align=center> <b>庫存號碼:$(stock_no)</b> </table> <br><b>回到<a href="addThumbs"><i>前頁 </i></a>.</b> </body> </html> %} %HTML(getAudio){ <html> <head><title>UDB Extender 巨集範例:項目的音效片段 $(stock_no)</title></head> <body bgcolor="#ffffff"> <font color="#3300ff" size="3"><b>您可以從此頁收聽音效片段: </b></font><br><br> <table width="400" border="2" bgcolor="#b1b1b1" cellpadding="5"> <tr><td align=center> @showAudioSQL() <tr><td align=center> <b>庫存號碼:$(stock_no)</b> </table> <br><b>回到<a href="addThumbs"><i>前頁 </i></a>.</b> <body> </html> %} |