ENVIRONMENT 陳述式旨在架構語言環境。語言環境是 Net.Data 的構成要素之一, Net.Data 用它來存取資料來源 (如:DB2 資料庫) 或執行以 REXX 之類語言撰寫的程式。 Net.Data 提供一組語言環境,以及可讓您建立自己語言環境的介面。 這些語言環境會在使用語言環境中加以描述, 而語言環境介面則會在Net.Data 語言環境參考手冊中加以描述。
在您可以呼叫語言環境之前, Net.Data 需要 ENVIRONMENT 陳述式存在於該語言環境的 Net.Data 起始設定檔中。
Net.Data 設定數個變數來影響 Net.Data 語言環境解譯函數呼叫的方式,這些函數定義於 FUNCTION 區塊。這些變數的設定必須傳遞至語言環境才有作用。
例如,巨集可定義 DATABASE 變數來設定資料庫名稱,該位置將執行 DTW_SQL 函數內的 SQL 陳述式。DATABASE 的值必須傳遞至 SQL 語言環境 (DTW_SQL),這樣 SQL 語言環境可以連接至設定的 資料庫。要傳遞變數至語言環境,您必須新增 DATABASE 變數到 DTW_SQL 之環境陳述式的參數列示。
樣本 Net.Data 起始設定檔在自行設定 Net.Data 環境架構陳述式方面已有一些假設。 這些假設不一定適合您的環境。修改陳述式使其適合您的環境。
新增或更新 ENVIRONMENT 陳述式:
ENVIRONMENT 陳述式具有下列語法:
ENVIRONMENT(type) library_name (parameter_list, ...)
參數:
Net.Data 藉由此名稱使這個語言環境和 Net.Data 巨集中定義之 FUNCTION 區塊互相關聯。 您必須在 FUNCTION 區塊定義中設定語言環境的類型來識別 Net.Data 應使用來執行函數的語言環境。
含有 Net.Data 呼叫的語言環境介面的服務程式的名稱。 在 OS/400,服務程式名稱是以 .SRVPGM 副檔名設定。
除了在 FUNCTION 區塊定義中設定的參數之外, 此參數列示還包含每一個函數呼叫時傳遞給語言環境的參數。
參數在 dtw_lei 結構的 parm_data_array 欄位中傳遞, 它們跟隨在 FUNCTION 區塊定義中設定的參數之後。(關於這些結構的資訊, 請參閱 Net.Data 語言環境參考手冊。)
在執行由語言環境所處理的函數之前,您必須先將這些參數定義為架構變數, 或定義為巨集檔案中的變數。 如果函數修改其中一個輸出參數, 則函數完成之後參數會保留修改過的值。
當 Net.Data 處理 INI 檔時,它不會載入語言環境服務程式。 當 Net.Data 第一次執行指明語言環境的函數時, 它即會載入該語言環境的服務程式。 只要載入 Net.Data,即會持續載入服務程式。
範例: 供 Net.Data 提供的語言環境所用之 ENVIRONMENT 陳述式。
針對您的應用程式自行設定 ENVIRONMENT 陳述式時, 請在 ENVIRONMENT 陳述式上新增變數,這些變數需要從起始設定檔中傳送到語言環境, 或為 Net.Data 巨集撰寫者在其巨集內所需設定或置換的。
1 MACRO_PATH /WWW/MACRO;/QSYS.LIB/WWW.LIB/MACRO.FILE
2 INCLUDE_PATH /WWW/MACRO;/QSYS.LIB/WWW.LIB/MACRO.FILE
3 EXEC_PATH /QSYS.LIB;/QSYS.LIB/WWW.LIB
4 ENVIRONMENT(DTW_REXX) /QSYS.LIB//QTCP.LIB/QTMHREXX.SRVPGM ( )
5 ENVIRONMENT(DTW_SQL) /QSYS.LIB/QTCP.LIB/QTMHSQL.SRVPGM (IN DATABASE,
LOGIN, PASSWORD, TRANSACTION_SCOPE, SHOWSQL, DB_CASE,
RPT_MAX_ROWS, START_ROW_NUM, DTW_SET_TOTAL_ROWS,
OUT DTWTABLE, SQL_CODE, TOTAL_ROWS)
6 ENVIRONMENT(DTW_SYSTEM) /QSYS.LIB/QTCP.LIB/QTMHSYS.SRVPGM ( )
每一個 ENVIRONMENT 陳述式必須由一行構成。