資料庫考量

下列考量適用於在 Web 應用程式伺服器環境中使用 IBM® i Access for Web 資料庫功能的情況。

資料庫考量可以分成下列幾個功能種類:
資料庫連線
IBM i Access for Web 會發出 JDBC 呼叫,來存取資料庫表格。依預設,會使用 IBM Toolbox for Java™ JDBC 驅動程式,以與執行 IBM i Access for WebIBM i 系統建立驅動程式管理員連線。自訂功能可用來定義額外的資料庫連線。 您可以定義額外的連線,以存取不同的 IBM i 系統、指定不同的驅動程式設定,或使用不同的 JDBC 驅動程式。如果在單一登入 (SSO) 環境中使用不同的 JDBC 驅動程式, 就必須在 JDBC URL 上設定任何必要的鑑別值。
自訂功能也可用來定義資料來源連線。 這項支援只有在 WebSphere® Application Server 環境中才提供。第 4 版的資料來源不受支援。如果 IBM i Access for Web 配置成使用基本鑑別來提示您提供 IBM i 使用者設定檔及密碼,也會使用這些使用者及密碼值來鑑別資料來源連線。如果 IBM i Access for Web 執行於 SSO 環境中,則資料來源必須配置元件管理的鑑別別名。
註: IBM i Access for Web 是使用 IBM Toolbox for Java JDBC 驅動程式進行測試。使用不同的驅動程式可能可行,但屬於未經測試、未支援的環境。
如需 JDBC 驅動程式可辨識的不同連線內容的清單,請參閱 IBM Toolbox for Java JDBC 內容主題。
執行 SQL:輸出類型
傳回 SQL 陳述式結果資料的受支援輸出類型有:
可延伸標記語言 (.xml)
「執行 SQL」所產生的 XML 輸出,是同時包含內含綱目及 SQL 查詢結果的單一文件。 內含的綱目符合「W3C 綱目建議」,日期 2001 年 5 月 2 日。此綱目包含文件中查詢結果部分的中繼資訊。綱目中包含有:資料類型資訊、資料限制,及文件結構。

現行的 XML 剖析器實作不支援使用內嵌的方式進行驗證。許多剖析器(包括 SAX 及 DOM 的實施)需要獨立的文件,以供綱目及內容進行驗證。若要達到以「執行 SQL」所產生的 XML 文件進行綱目驗證, 文件必須重組為個別資料及綱目文件。根元素也必須更新,以支援此一新結構。如需「XML 綱目」的其他資訊,請造訪全球資訊網協會網站

XML 文件的查詢結果部分,包含結構化之列與直欄形式,從查詢所傳回的資料。其他應用程式可輕易處理此資料。如果需要本主題所包含資料的其他資訊,可參照文件綱目。

超文字標記語言 (.html)
若使用 HTML 輸出類型,結果會顯示在瀏覽器中。若要將結果儲存到檔案,可使用瀏覽器儲存功能。另一個選項是:儲存 SQL 要求,並於執行要求時,將結果重新導向到檔案。使用 Internet Explorer 時,以滑鼠右鍵按一下「執行」鏈結, 選擇「另存目標」選項。若使用 Netscape Navigator,請按住 Shift 鍵,同時按一下「執行」鏈結。

若設定每表格的 HTML 列數值,「執行 SQL」會以分頁清單來顯示結果(類似「預覽」),而不傳回單一 HTML 頁面。

Microsoft Excel/Lotus 1-2-3
Microsoft Excel 及 Lotus 1-2-3 的受支援檔案格式,並非上述應用程式所支援的最新類型。由於不太可能需要較新類型的額外功能來從資料庫擷取資料,因此應不致於導致功能流失。藉由支援上述檔案類型的舊版本, 可維持上述舊版本應用程式的相容性。可使用較新版本的應用程式,將結果儲存到較新格式的檔案。
註: 新格式的檔案與複製資料到表格不相容。
Microsoft Excel XML (.xml)
只有 Microsoft Excel 2002 或更新版本的應用程式才支援 Microsoft Excel XML 檔案格式。 Microsoft Excel 2002 是 Microsoft Office XP 的一部分。

如果選擇了 ISO 日期與時間格式選項,日期與時間值才會以日期與時間格式儲存。 否則,日期與時間值會儲存為文字值。

可攜性文件格式 (.pdf)
PDF 檔案格式會以在頁面中顯示的方式來代表您的 SQL 資料。一頁上可容納的資料量,取決於頁面大小、紙張方向, 及邊距大小。欄位數若極為大量,可能導致 PDF 文件無法使用。在某些情況下,Adobe Acrobat Reader 外掛程式無法將這類檔案載入至瀏覽器中。替代方案是,可將要求分割成多重查詢,由其傳回直欄的子集,或者也可以選擇不同的輸出類型。

使用輸出設定值,您可自訂 PDF 文件中各種部分所使用的字型選項。可將選定的字型內含在文件中,不必安裝在用來檢視文件的電腦。在文件中內含字型,會增加文件大小。

用來代表文字的字元編碼,也是 PDF 輸出選項。 如果字型無法代表編碼中的字元,字元會保留空白,或使用另一個指示符字元,來表示無法顯示的字元。請選擇能代表所要顯示資料中全部字元的字型及字集值。

根據預設,「執行 SQL」可支援標準 PDF 字型及 Adobe Asian 字型,以建置 PDF 輸出。由於任何 PDF 檢視器都需要有標準字型可用, 因此不必內含在 PDF 文件中。Adobe 提供的一組 Asian 字型套件,可以顯示包含簡體中文、繁體中文、日文或韓文字元的文字。「執行 SQL」可支援建立具有這些字型的文件,但不支援將這些字型內含在文件中。若使用了這些字型,則必須在用來檢視文件的電腦上安裝適當的字型套件。 這些字型套件可以從 Adobe 網站下載。

其他的字型可使用「自訂」的「其他的 PDF 字型目錄」設定,加入至可用的字型清單。支援的字型類型有:

  • Adobe Type 1 字型 (*.afm)

    為了將 Type 1 字型內含在文件中,Type 1 字型檔 (*.pfb) 必須位在字型公制檔 (*.afm) 的相同目錄。若只有字型公制檔可用,則可以使用字型建立文件,但用來檢視文件的檔案必須安裝字型。Type 1 字型只支援單位元組編碼。

  • TrueType 字型 (*.ttf) 及 TrueType 字型集合 (*.ttc)

    內含 TrueType 字型及 TrueType 字型集合為選用性的作業。 若內含 TrueType 字型,則僅會內含字型中代表資料所需的部分。可用字集編碼的清單,是從字型檔擷取得來。除擷取的編碼之外,另可使用多語 "Identity-H" 編碼。若使用此編碼,字型一律會內含在文件中。您可以內含支援雙位元組字集的 TrueType 字型,作為 Adobe Asian 字型的替代方案。如此會產生較大的文件,但用來檢視的電腦無需安裝字型。

    如果現行要求的語言環境是希伯來文或阿拉伯文, 則「執行 SQL」可支援建置具有雙向資料的 PDF 文件。

OpenDocument 試算表 (.ods)
IBM i Access for Web 所建立的 OpenDocument 試算表文件,符合 Oasis Open Document Format for Office Applications (OpenDocument) 1.0 規格。

如果選擇了 ISO 日期與時間格式選項,日期與時間值才會以日期與時間格式儲存。 否則,日期與時間值會儲存為文字值。

文字 - 具定界符號 (.txt)
預設定界字元是底線。您可以將這個預設值置換為單一字元或字元字串。
可調式向量圖形圖表 (.svg)
SQL 結果會轉換為 SVG 區域、長條、折線或圓餅圖。 結果集中的所有數值直欄都會製成圖表。如果沒有數值直欄,則會產生錯誤。

字元直欄中的值則是當成種類標籤或圖例標籤(視資料是根據直欄或橫列來製成圖表而定)。如果結果集中沒有字元直欄,則會改為使用橫列號碼。其他所有直欄類型(如二進位大型物件及資料鏈結)則會予以略過。

您可以使用設定來控制圖表產生方式的特定部分,如要產生的圖表類型、使用的配色以及軸標題(適用於選取的圖表類型)。

在不同瀏覽器中,SVG 內容支援也會有所差異。如果在瀏覽器內顯示 SVG 輸出發生問題,請嘗試安裝最新的瀏覽器版本或使用不同的瀏覽器。

您必須要安裝 JDK 1.5 或更高版本才能支援 .svg。如果未安裝必要的 JDK 層級,則 SVG 圖表輸出類型不會顯示在「執行 SQL」輸出類型清單中。

執行 SQL:提示陳述式
「執行 SQL」可支援含有參數記號的 SQL 陳述式。有兩種方式可建立這類型的陳述式。第一種選擇, 是透過「SQL 精靈」。「SQL 精靈」可支援以參數記號作為條件值。除了指定條件值作為要求一部分的選擇之外,SQL 精靈另外還提供了一個選擇,可在執行要求時,提示輸入條件值。SQL 精靈能處理建置頁面來提示輸入條件值,以及建置含有參數記號的 SQL 陳述式。

建立含有參數記號之 SQL 陳述式的第二種方式,是使用「執行 SQL」,手動輸入陳述式。這個選項需要儲存要求。無法以「執行 SQL」或使用「我的要求」的「執行」鏈結,直接執行要求。必須使用「執行 SQL 要求 (iWADbExec)」URL 介面,來傳遞參數記號的值。必須為陳述式中的每一個參數記號指定一個 URL 參數。URL 參數必須命名為 iwaparm_x,其中 x 是參數索引。iwaparm_1 使用於第一個參數記號,iwaparm_2 使用於第二個參數記號,依此類推。例如:

  http://server:port/webaccess/iWADbExec?request=promptedRequest&iwaparm_1=Johnson&iwaparm_2=500

呼叫「執行 SQL 要求 (iWADbExec)」URL 介面以傳遞參數記號值的一種方式,是使用 HTML 套表。可使用輸入欄位, 提示使用者輸入值。這些欄位的名稱必須遵循上述的 URL 參數命名慣例。要求的名稱可用隱藏參數的形式來儲存。套表動作必須指定「執行 SQL 要求 (iWADbExec)」URI。提交套表時,會以指定的值建置 URL、呼叫 IBM i Access for Web,並執行要求。範例 HTML 原始檔如以下所顯示:

<HTML>
 <BODY>
  <FORM action="http://server:port/webaccess/iWADbExec" method="get">
   Enter a customer name and press <B>OK</b> to retrieve account information.<br>
   <input type="text" name="iwaparm_1" value=""/>
   <input type="submit" name="ok" value=" OK "/>
   <input type="hidden" name="request" value="promptedRequest"/>
  </FORM>
 </BODY>
</HTML>
複製資料到表格
如果要將資料複製到表格,且選擇的檔案類型是「可延伸標記語言 (XML)」, 則要複製的檔案必須是簡明格式。這個格式並不一定要包含內含的綱目及其支援元素。 以最簡單的形式而言,XML 文件必須為如下顯示的結構。
<?xml version="1.0" encoding="utf-8" ?>
<QiwaResultSet  version="1.0">
   <RowSet>
      <Row number="1">
         <Column1 name="FNAME">Jane</Column1>
         <Column2 name="BALANCE">100.25</Column2>
      </Row>
      <Row number="2">
         <Column1 name="FNAME">John</Column1>
         <Column2 name="BALANCE">200.00</Column2>
      </Row>
   </RowSet>
</QiwaResultSet>

這個格式是由 XML 指引,接著是根元素 QiwaResultSet 所組成。如果未在 XML 指引中指定編碼屬性,複製資料到表格會假設文件是以 utf-8 所編碼。根元素包含有版本屬性。此 XML 格式的對應版本是 1.0。RowSet 元素是接下來所有資料列的儲存區。 這些資料列包含在 Row 元素中。每一個 Row 元素都必須要有唯一的數字屬性。每一個 Row 元素中,有一或多個 Column 元素。列中的每一個 Column 元素都必須是唯一的。這是以加入序號字尾來達成。範例:Column1、Column2、Column3、Columnx,其中 'x' 是列中的欄位數。 每一個直欄也必須要有名稱屬性。此名稱對應於系統上關聯式表格中的直欄名稱。若使用此簡式格式,因為文件並未包含綱目, 所以必須關閉「文件以其綱目驗證」設定。

雖然並非必要,「XML 綱目」也可併入文件中。檢查以「執行 SQL」所產生的 XML 文件,可瞭解綱目的結構方式。此外也請造訪全球資訊網協會網站,以取得有關 XML 綱目的其他資訊。

匯入查詢

「執行 SQL」只可以在查詢物件中存取及儲存 SQL 陳述式;然而,查詢物件包含的資訊會多於 SQL 陳述式。如果查詢物件包含查詢的額外資訊,則可能需要使用「自訂」功能建立新的 IBM i Access for Web 資料庫連線,來處理額外資訊。預設的 IBM i Access for Web 資料庫連線會使用 SQL 命名慣例及現行使用者設定檔的語言環境特定預設值,來執行資料庫查詢要求。必須設定額外的屬性以建立非預設資料庫連線的已知特殊情況如下:

  • 指定表格時會使用系統命名慣例
  • 查詢中指定的日期與時間格式和語言環境的預設值不同
  • 查詢中使用的小數分隔字元和語言環境預設值不同
  • 會指定非預設的排序順序
IBM i Access for Web 無法判斷查詢檔案內容的 CCSID。如果匯入查詢的使用者設定檔的 CCSID,和查詢檔案中資料的 CCSID 不相符, 可能會導致不正確的轉換或轉換錯誤。使用者可在匯入查詢時設定 CCSID 值,來克服這個問題。