Net.Data Web 登記會提供持續儲存體,來存放應用程式相關的資料。Web 登記可以用來儲存架構資訊及其它在執行時可被 Web 型應用程式動態存取的資料。 您僅能使用 Net.Data 及 Web 登記內建支援,透過 Net.Data 巨集來存取 Web 登記, 以及從為了這個目的而撰寫的 CGI 程式存取它。Web 登記可在作業系統的子集中使用。 請參閱 Net.Data 參考手冊,以取得 Web 登記內建函數的說明及語法,以及支援語言環境的作業系統列示。
標準 Web 網頁開發需要 URL 直接置於網頁的 HTML 來源中。 這將使得不易變更鏈結。靜態自然也會限制可輕易放置在 Web 網頁上的鏈結類型。 使用 Web 登記來儲存應用程式相關的資料 (例如, URL), 可協助建立具有動態鏈結的 HTML 網頁。
有權寫入存取登記的應用程式軟體開發者及 Web 管理者可在登記中儲存及維護資訊。在執行時,應用程式會從它們的相關登記中取回資訊。這可設計有彈性的應用程式, 且同時容許移動應用程式及伺服器。您可以使用 Net.Data 巨集,透過動態設定的鏈結, 來建立 HTML 頁面。
資訊會登記項目的格式儲存在 Web 登記中。 每一個登記項目是由一對字串所構成:RegistryVariable 字串及對應的 RegistryData 字串。 可用一對字串來代表的資訊將能夠儲存為登記項目。Net.Data 會使用變數字串作為搜尋關鍵字,從登記中找出及取回特定項目。
表 10 顯示一個範例 Web 登記:
CompanyName | WorldConnect |
---|---|
Server | ftp.einet.net |
JohnDoe/foreground | Green |
CompanyURL/IBM Corp. | http://www.ibm.com |
CompanyURL/Sun Microsystems Corp. | http://www.sun.com |
CompanyURL/Digital Equipment Corp. | http://www.dec.com |
JaneDoe/Home_page | http://jane.info.net |
考慮使用 Web 登記的理由:
「Web 登記」中的索引登錄是其 RegistryVariable 字串具有其它索引字串的登錄, 而這個字串是使用下列語法附加到這些登錄上:
RegistryVariable/Index
使用者會在個別參數中提供索引字串的值,這個值將給與設計來與索引登錄一起使用的內建函數。 多個索引登記項目可以具有相同的 RegistryVariable 字串值, 但它們可以經由具有不同的索引字串值,來維護它們的唯一性。
Smith/Company_URL | http://www.ibmlink.ibm.com |
Smith/Home_page | http://www.advantis.com |
即使上面兩個索引登錄具有相同的 RegistryVariable 字串值 Smith,但每一種情況中,索引字串是不同的。 Web 登記函數會將它們視為兩個不同的登錄。
請驗證下列架構陳述式是否在起始設定檔案中,且位在同一行上:
ENVIRONMENT (DTW_WEBREG) DTWWEB ( OUT RETURN_CODE )
請參閱環境架構陳述式,以瞭解 Net.Data 起始設定檔案及語言環境 ENVIRONMENT 陳述式。
如同呼叫其它函數一樣的方式來呼叫「Web 登記」函數。請使用 DEFINE 陳述式, 將任何您想要傳遞的參數定義為變數。 例如:
%DEFINE { name = "smith" %}
然後,使用函數呼叫陳述式來呼叫函數;例如:
@DTWR_ADDENTRY("URLLIST", name, "http://www.ibm.com/software/", "WORK_URL"
下列範例會建立 Web 登記及新增登錄。然後,它會顯示含有登錄的報表。
%DEFINE { RegTable = %TABLE(ALL) %} %MESSAGE { default:"<p>Function Error: Return code: $(RETURN_CODE)." :continue %} %FUNCTION(DTW_WEBREG) ListTable(INOUT RegTable) { %} %HTML(report){ @DTWR_CREATEREG("MYREG") @DTWR_ADDENTRY("MYREG", "Dept. 1", "Payroll") @DTWR_ADDENTRY("MYREG", "Dept. 2", "Technical Support") @DTWR_ADDENTRY("MYREG", "Dept. 3", "Research") @DTWR_LISTREG("MYREG", RegTable) <p>Report:<br /> @ListTable(RegTable) %}