Image、Audio 及 Video Extenders 管理與程式設計


範例 Net.Data 巨集檔

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 應用程式


Figure dmba5018 not displayed.

圖 25. Net.Data 範例巨集檔

%{ ------------------------------------------------------------------------ %}
%{ 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>
%}
 

 


[ 頁面頂端 | 前一頁 | 下一頁 | 目錄 | 索引 ]