在 Net.Data 初始化文件中已经预先配置了几种语言环境。每种语言环境在初始化文件中 都有一行 ENVIRONMENT 语句,其中包含了特定于那种语言环境的信息。ENVIRONMENT 语句的 格式是:
ENVIRONMENT(type) library-name([usage parameter, ...])
以下例子显示了由 Net.Data 提供的用于语言 环境的 ENVIRONMENT 语句。这些例子显示了您可以指定的所有参数。包含在 ENVIRONMENT 语句 中的变量是 Net.Data 宏编写人员可以在宏中设置或覆盖的那些变量。初始化文件中的语言环境 语句还可以在 Net.Data 内部函数中使用。请参阅附录 Net.Data 参考指南 中 与平台有关的信息,或参阅 Net.Data “自述文件”或“程序目录”中其它的信息。
ENVIRONMENT (DTW_SQL) DTWSQL ( IN DATABASE, LOGIN, PASSWORD, TRANSACTION_SCOPE, SHOWSQL, ALIGN, START_ROW_NUM) ENVIRONMENT (DTW_SYB) DTWSYB ( IN DATABASE, LOGIN, PASSWORD, TRANSACTION_SCOPE, SHOWSQL, ALIGN, START_ROW_NUM) ENVIRONMENT (DTW_ODBC) DTWODBC ( IN DATABASE, LOGIN, PASSWORD, TRANSACTION_SCOPE, SHOWSQL, ALIGN) ENVIRONMENT (DTW_APPLET) DTWJAVA ( ) ENVIRONMENT (DTW_JAVAPPS) ( OUT RETURN_CODE ) CLIETTE "DTW_JAVAPPS" ENVIRONMENT (DTW_PERL) DTWPERL ( OUT RETURN_CODE ) ENVIRONMENT (DTW_REXX) DTWREXX ( OUT RETURN_CODE ) ENVIRONMENT (DTW_SYSTEM) DTWSYS ( OUT RETURN_CODE )
对于 SQL 和 ODBC 访问,OS/390 稍有不同:
ENVIRONMENT (DTW_SQL) DTWSQL ( IN LOCATION, DB2SSID, DB2PLAN, TRANSACTION_SCOPE, ALIGN) ENVIRONMENT (DTW_ODBC) DTWODBC ( IN LOCATION, TRANSACTION_SCOPE, ALIGN)
以下是您要为每个语言环境指定的参数:
这是一个将语言环境和 Net 宏中定义的一个 FUNCTION 模块相关联 的名称。 必须在一个 FUNCTION 模块定义中指定类型,告诉某个函数调用中的 Net.Data,由 这个语言环境来处理这个调用。
这是一个包含由 Net.Data 所调用的语言环境接口 的对象名称。 在 OS/2 中,用不带 .dll 扩展名的名称来 指定 DLL。在 AIX 中,用 .o 扩展名来指定共享对象;而 在 OS/400 中,用 .SRVPGM 扩展名指定服务程序的名称。 在 OS/390 中没有用于 DLL 文件的扩展名。参阅与 Net.Data 一起提供的初始化文件, 查找对于您的平台如何来指定这个名称。可以考虑使用全限定路径名,确保 Net.Data 能够 找到 DLL 或共享库。
除了在 FUNCTION 模块定义中指定的那些参数之外,每个函数调用 都有要传递到语言环境的一个参数表,隐式参数表指的就是这张表。它们是 在 dtw_lei_t 结构的 parm_data_array 字段 中传递的,后面跟 FUNCTION 模块定义中指定的参数。在函数调用之前,必须在 Net.Data 宏中 把这些参数定义为变量。FUNCTION 模块中的参数名必须与模块外的变量名相匹配。一旦函数完成, 任何由函数修改的这些参数都具有修改后的值。
当启动时,Net.Data 读入配置信息,但是在调用标识一个语言环境的 FUNCTION 模块 之前,不装入这个语言环境 DLL 或共享库。然后,在 Net.Data 结束之前,这个 DLL 一直 是装入的。
每个 ENVIRONMENT 语句必须单独一行。语言环境可使用 dtw_getvar() 例行 程序来检索一个配置变量的值,并且可使用 dtw_setvar() 例行程序 来修改这个值。请参阅Missing value和Missing value中的细节。
语言环境可能需要额外的配置信息。 您可以在 Net.Data 初始化文件中用配置变量语句提供这一信息。这些语句具有以下格式:
NAME [=] value-string
例如:
DB2INSTANCE = DB2