数据类型转换
事务集成器 (TI) 运行时环境会自动在基于主机的 COBOL 或报表程序生成器 (RPG) 数据类型和基于 Windows 的编程语言(如 Visual Basic)使用的基于 COM 的自动化数据类型之间转换数据类型。 自动转换基于你在设计和创建 TI 组件时在 TI 项目中定义的信息,该组件 (类型库) 。 此信息与 TI 组件一起存储,由 TI 运行时用来从基于 COM 的 或 可理解的表示形式转换方法的参数。基于 NET 的编程语言转换为可由主机事务程序 (TP) 理解的表示形式。
使用 TI 项目将每个自动化数据类型与主机 TP 中使用的每个 COBOL 或 RPG 数据类型相关联。 TI 在标准自动化数据类型与 COBOL 或 RPG 数据类型之间提供默认映射。 可以接受默认映射,也可以使用 TI 支持的其他映射替代默认值。 TI 项目将转换映射存储在 TI 组件类型库 (.tlb) 文件中。 此转换映射用于:
处理在 TP 和 TI 组件之间移动的数据。
将 TI 组件转换为 TP (将主机定义导出) 。
将 TP 转换为 TI 组件, () 导入主机定义。
如果方法调用中使用的参数未严格类型化,TI 运行时环境会尝试将其接收的数据类型强制转换为所需的数据类型。 如果强制成功,则调用将继续。 如果失败,则返回错误。
在运行时,当客户端应用程序使用 TI 自动化接口调用 TI 自动化服务器的方法时,TI 运行时环境使用转换映射来处理发送到大型机 TP 的传入和传入/输出参数的实际数据转换。 TI 转换 Microsoft® Windows® 数据后,TI 会将方法调用重新格式化为主机系统 APPC/LU 6.2 或 TCP/IP 消息。 然后,TI 使用 Microsoft Host Integration Server SNA 或 TCP/IP 连接将消息转发到大型机。 当大型机 TP 返回 in/out 和 out 参数时,TI 会重新设置返回 Windows 的消息的格式,将主机数据转换为 Windows 数据,并将返回值和参数返回到客户端应用程序。
在定义远程环境 (RE) 时,在 TI 管理器中选择的语言或代码页决定了使用哪个代码页从自动化端的 UNICODE () 转换为大型机端的扩展二进制编码的十进制交换代码 (EBCDIC) () 。 在 TI 管理器中创建 RE 时,可以选择一种语言来接受该语言的默认代码页,也可以选择特定的代码页。
如果需要转换为不同的目标代码页 (例如,在不同国家或地区的目标大型机) ,则需要为每个目标设置 RE,因为 TI 不支持需要使用区域设置的转换。
可以使用 TI 项目导入 COBOL 或 RPG,或手动输入方法说明以创建自动化方法。 导入 COBOL 或 RPG 时,每个支持的 COBOL 数据类型都具有默认的自动化类型。 手动创建方法时,每个自动化数据类型都有一个与之关联的默认主机数据类型。
如果不想使用默认的自动化数据类型,可以使用 TI 项目手动更改自动化数据类型。 如果新的自动化类型与现有主机数据类型兼容,则现有 COBOL 或 RPG 数据类型保持不变。 如果不兼容,则会更改主机数据类型,从而影响大型机程序。