ENVIRONMENT 陳述式旨在架構語言環境。語言環境是 Net.Data 的構成要素之一, Net.Data 用它來存取資料來源 (如:DB2 資料庫) 或執行以 REXX 之類語言撰寫的程式。 Net.Data 提供一組語言環境,以及可讓您建立自己語言環境的介面。 這些語言環境會在"使用語言環境"中加以描述, 而語言環境介面則會在 Net.Data 語言環境介面參考手冊中加以描述。
Net.Data 需要特殊語言環境的 ENVIRONMENT 陳述式先存在,方可呼叫該語言環境。
Net.Data for OS/400 不需要 Net.Data 所附的語言環境的 ENVIRONMENT 陳述式。 不過,如果發現語言環境陳述式,它將會置換 Net.Data 使用的預設值。 建議您 Net.Data 提供的語言環境的 ENVIRONMENT 陳述式最好不要新增到 Net.Data 架構檔。
您可以經由將變數指定為 ENVIRONMENT 陳述式中的參數,使變數與語言環境產生關聯。 Net.Data 會隱含地將 ENVIRONMENT 陳述式上指定的參數傳遞給語言環境,作為巨集變數。 若要變更巨集中 ENVIRONMENT 陳述式上指定的參數值, 請使用 DTW_ASSIGN() 函數指定變數值,或在 DEFINE 區段中定義變數。重要事項: 如果有一個巨集變數定義在巨集中,但未在 ENVIRONMENT 陳述式上指定它, 則巨集變數將不會傳遞給語言環境。
例如,巨集可定義 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 呼叫的語言環境介面的服務程式的名稱。
除了在 FUNCTION 區塊定義中設定的參數之外, 此參數列示還包含每一個函數呼叫時傳遞給語言環境的參數。
若要設定及傳遞參數列示中的變數,請在巨集中定義變數。
在執行由語言環境所處理的函數之前,您必須先將這些參數定義為架構變數, 或定義為巨集中的變數。如果函數修改其中一個輸出參數, 則函數完成之後參數會保留修改過的值。
當 Net.Data 處理起始設定檔時,它不會載入語言環境服務程式。 當 Net.Data 第一次執行指明語言環境的函數時, 它即會載入該語言環境的服務程式。 只要載入 Net.Data,即會持續載入服務程式。
範例: 供 Net.Data 提供的語言環境所用之 ENVIRONMENT 陳述式。
針對您的應用程式自行設定 ENVIRONMENT 陳述式時, 請在 ENVIRONMENT 陳述式上新增變數,這些變數需要從起始設定檔中傳送到語言環境, 或為 Net.Data 巨集撰寫者在其巨集內所需設定或置換的。
在 OS/400 上,ENVIRONMENT 陳述式需要 Net.Data 語言環境,且不建議使用它。 不過,這個範例會顯示 Net.Data 使用的某些預設 ENVIRONMENT 陳述式。
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 陳述式須在單一行上。