系统函数
VGLib.connectionService 有两个优点:
- 允许程序在运行时连接数据库或与数据库断开连接。
- (可选)接收数据库产品名和发行版级别。可以在 case、if 或 while 语句中使用接收到的信息,以使运行时处理取决于数据库的特征。
当使用 VGLib.connectionService 来从 Java™ 程序中创建新连接时,通过设置系统变量
VGVar.sqlIsolationLevel 来指定隔离级别。
VGLib.connectionService 仅用于从 VisualAge® Generator 和 EGL 5.0 迁移的程序。如果(在开发时)选择了 EGL 首选项 VisualAge Generator 兼容性或者(在生成时)将构建描述符选项 VAGCompatibility 设置为 yes,则支持此函数。
VGLib.connectionService 不返回值。

- userID
- 用来访问数据库的用户标识。此自变量必须是 CHAR 类型的项,且长度为 8;文字无效。此自变量是必需的。有关背景知识信息,请参阅数据库权限和表名。
- password
- 用来访问数据库的密码。此自变量必须是 CHAR 类型的项,且长度为 8;文字无效。此自变量是必需的。
- serverName
- 指定一个连接并使用该连接来对自变量 product 和
release 赋值(如果在
VGLib.connectionService 的调用中包括了那些自变量的话)。
自变量
serverName 是必需的,它必须是 CHAR 类型的项,并且长度为 18。下列任何值都有效:
- 空白(无内容)
- 如果有适当的连接,则 VGLib.connectionService 将保留该连接。如果没有适当的连接,则结果(不同于赋值)是返回到运行单元开始时起作用的连接状态,如缺省数据库中所述。
- RESET
- RESET 重新连接至缺省数据库;但如果缺省数据库不可用,则连接状态保持不变。
有关更多详细信息,请参阅缺省数据库。
- serverName
- 标识数据库:
- 通过查找属性 vgj.jdbc.database.server
来查找物理数据库名称,其中 server 是
VGLib.connectionService 调用所指定的服务器的名称。如果未定义此属性,则按原样使用
VGLib.connectionService 调用所指定的服务器名称。
- 与非 J2EE 连接相比,J2EE 连接的数据库名称的格式有所不同:
- 如果程序是为 J2EE 环境生成的,则使用 JNDI 注册表中与数据源绑定的名称;例如 jdbc/MyDB。如果构建描述符选项 J2EE 被设置为 YES,就会发生这种情况。
- 如果程序是为非 J2EE JDBC 环境生成的,则使用连接 URL;例如,jdbc:db2:MyDB。如果选项 J2EE 被设置为 NO,就会发生这种情况。
- product
- 接收数据库产品名。此自变量(如果指定的话)必须是 CHAR 类型的项,且长度为 8。
要确定当代码连接至特定数据库时将接收到的字符串,请查看数据库或驱动程序的产品文档;或者在测试环境中运行代码并将接收到的值写入文件。
- release
- 接收数据库发行版级别。此自变量(如果指定的话)必须是 CHAR 类型的项,且长度为 8。
要确定当代码连接至特定数据库时将接收到的字符串,请查看数据库或驱动程序的产品文档;或者在测试环境中运行代码并将接收到的值写入文件。
- connectionOption
- 有效值如下所示:
- D1E
- D1E 是缺省值。选项名中的 1 指示仅支持一阶段提交,E 指示任何断开连接都必须是显式的。在这种情况下,提交或回滚对现有连接不起作用。
对数据库的连接不关闭游标、释放锁或结束现有连接。但是,如果运行单元已连接至同一数据库,则效果等同于指定 DISC 并接着指定 D1E。
可以使用多个连接来从多个数据库进行读取,但是,由于只有一阶段提交可用,所以在一个工作单元中只应该更新一个数据库。
- D1A
-
选项名中的
1 指示仅支持
一阶段提交,
A 指示任何断开连接都是
自动的。此选项的特征如下所示:
- 每次只能连接至一个数据库
- 对数据库的提交、回滚或连接将结束现有的连接
- DISC
- 与指定的数据库断开连接。与数据库断开连接将导致回滚并释放锁,但仅适用于该数据库。
- DCURRENT
- 与当前已连接的数据库断开连接。与数据库断开连接将导致回滚并释放锁,但仅适用于该数据库。
- DALL
- 与所有已连接的数据库断开连接。与所有数据库断开连接将导致对那些数据库执行回滚,但不对其它可恢复的资源执行回滚。
- SET
- 设置当前连接。(缺省情况下,在运行单元中最近进行的连接就是当前连接。)
为了与 VisualAge Generator 兼容,支持下列值,但这些值等同于 D1E:R、D1C、D2A、D2C 和 D2E。