ENVIRONMENT 陳述式旨在架構語言環境。語言環境是 Net.Data 的構成要素之一, Net.Data 用它來存取資料來源 (如:DB2 資料庫) 或執行以 REXX 之類語言撰寫的程式。 Net.Data 提供一組語言環境,以及可讓您建立自己語言環境的介面。 這些語言環境會在使用語言環境中加以描述, 而語言環境介面則會在 Net.Data 語言環境介面參考手冊中加以描述。
Net.Data 需要特殊語言環境的 ENVIRONMENT 陳述式先存在,方可呼叫該語言環境。
您可以經由將變數指定為 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, ...) [CLIETTE "cliette_name"]
參數:
Net.Data 藉由此名稱使這個語言環境和 Net.Data 巨集中定義之 FUNCTION 區塊互相關聯。 您必須在 FUNCTION 區塊定義中設定語言環境的類型來識別 Net.Data 應使用來執行函數的語言環境。
含有 Net.Data 呼叫的語言環境介面的 DLL或共用程式庫的名稱。
除了在 FUNCTION 區塊定義中設定的參數之外, 此參數列示還包含每一個函數呼叫時傳遞給語言環境的參數。
若要設定及傳遞參數列示中的變數,請在巨集中定義變數。
在執行由語言環境所處理的函數之前,您必須先將這些參數定義為架構變數, 或定義為巨集中的變數。下列範例在 ENVIRONMENT 陳述式中指定變數︰
ENVIRONMENT(DTW_SQL) C:\WINNT\System32\nddb2.dll(IN DATABASE,TRANSACTION_SCOPE,USERID,PASSWORD)
cliette 的名稱。 cliette_ name 可以指「Java 應用程式」語言環境 cliette, 或它可以是資料庫 cliette。 cliette_name 參數是與 CLIETTE 關鍵字一起使用, 且兩者僅能與「現場連線」一起使用。CLIETTE 和 cliette_name 是可選用的, 且只有資料庫和 Java 應用程式語言環境才能指定。
語法:
CLIETTE "DTW_JAVAPPS"
語法:
CLIETTE "type:db_name"
參數:
db_name 是可選用的。
當 Net.Data 處理起始設定檔時,它不會載入語言環境 DLL 或共用程式庫。 當 Net.Data 第一次執行指明語言環境的函數時, 它即會載入該語言環境的 DLL 或共用程式庫。 只要載入 Net.Data,即會持續載入 DLL 或共用程式庫。
範例: 供 Net.Data 提供的語言環境所用之 ENVIRONMENT 陳述式。
自行設定應用程式的 ENVIRONMENT 陳述式時, 請在 ENVIRONMENT 陳述式中新增起始設定檔需要傳送到語言環境的變數, 或 Net.Data 巨集撰寫者需要在巨集中設定或置換的變數。
ENVIRONMENT (DTW_SQL) /net.data/lib/dtwsql.so ( IN DATABASE, LOGIN, PASSWORD, TRANSACTION_SCOPE, ALIGN, START_ROW_NUM, DTW_SET_TOTAL_ROWS) CLIETTE "DTW_SQL:MYDBASE" ENVIRONMENT (DTW_ORA) /net.data/lib/dtwora.so (IN DATABASE, LOGIN, PASSWORD, TRANSACTION_SCOPE, ALIGN, START_ROW_NUM, DTW_SET_TOTAL_ROWS) ENVIRONMENT (DTW_ODBC) /net.data/lib/dtwodbc.so ( IN DATABASE, LOGIN, PASSWORD, TRANSACTION_SCOPE, ALIGN, DTW_SET_TOTAL_ROWS) ENVIRONMENT (DTW_APPLET) /net.data/lib/dtwjava.so ( ) ENVIRONMENT (DTW_JAVAPPS) /net.data/lib/dtwjavapps.so ( OUT RETURN_CODE ) CLIETTE "DTW_JAVAPPS" ENVIRONMENT (DTW_PERL) /net.data/lib/dtwperl.so ( OUT RETURN_CODE ) ENVIRONMENT (DTW_REXX) /net.data/lib/dtwrexx.so ( OUT RETURN_CODE ) ENVIRONMENT (DTW_SYSTEM) dtwsys.so ( OUT RETURN_CODE ) ENVIRONMENT (HWS_LE) dtwhws.so ( OUT RETURN_CODE )
要求︰每一 ENVIRONMENT 陳述式須在單一行上。