ENVIRONMENT 语句配置一个语言环境。语言环境是 Net.Data 的一个组件,Net.Data 用 它来访问诸如 DB2 数据库等数据源,或者执行诸如 REXX 等语言编写的程序。Net.Data 提供了 一系列语言环境,还提供了允许您创建自己的语言环境的接口。 使用语言环境中描述了这些语言环境,Net.Data 语言环境接口参考中描述了语言环境接口。
在调用某个特定的语言环境之前,Net.Data 要求用于该语言环境的 ENVIRONMENT 语句必须存在。
对于与 Net.Data 一起发行的语言环境,Net.Data for OS/400 不 需要 ENVIRONMENT 语句。当然,如果遇到一个语言环境语句,它将覆盖 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 语言环境就可以连接到指定 的数据库。要将变量传递到 语言环境,您必须向 DTW_SQL 的语言环境的参数列表中 添加 DATABASE 变量。
示例 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 上,Net.Data 语言环境不需要 ENVIRONMENT 语句, 不建议使用。当然,这个示例显示了 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 语句必须在单独一行上。