系统函数 sysLib.connect 允许程序在运行时连接数据库。此函数不返回值。

- database
- 标识数据库:
- 将 database 设置为 RESET 将重新连接至缺省数据库,但如果缺省数据库不可用,则连接状态保持不变;有关更多详细信息,请参阅缺省数据库。
- 否则,通过查找属性 vgj.jdbc.database.server
来查找物理数据库名称,其中 server 是 sysLib.connect 调用所指定的数据库的名称。如果未定义此属性,则按原样使用 sysLib.connect 调用所指定的数据库名称。
- 与非 J2EE 连接相比,J2EE 连接的数据库名称的格式有所不同:
- 如果程序是为 J2EE 环境生成的,则使用 JNDI 注册表中与数据源绑定的名称;例如 jdbc/MyDB。如果构建描述符选项 J2EE 被设置为 YES,就会发生这种情况。
- 如果程序是为非 J2EE JDBC 环境生成的,则使用连接 URL;例如,jdbc:db2:MyDB。如果选项 J2EE 被设置为 NO,就会发生这种情况。
- userID
- 用来访问数据库的用户标识。此自变量必须是 CHAR 类型的项并且长度为 8,文字也有效。此自变量是必需的。有关背景知识信息,请参阅数据库权限和表名。
- password
- 用来访问数据库的密码。此自变量必须是 CHAR 类型的项并且长度为 8,文字也有效。此自变量是必需的。
- commitScope
- 值是下列其中一个字,不能使用引号,也不能使用变量:
- type1(缺省值)
- 只支持一阶段提交。新连接将关闭所有游标、释放锁并结束任何现有连接;然而,在进行 type1 连接之前,请调用 sysLib.commit 或 sysLib.rollback。
如果使用 type1 作为 commitScope 的值,则参数 disconnectOption 的值必须是字 explicit,这是缺省值。
- type2
- 对数据库的连接不关闭游标、释放锁或结束现有连接。虽然可以使用多个连接来从多个数据库中进行读取,但在一个工作单元中只应该更新一个数据库,原因是只有一阶段提交可用。
- twophase
- 等同于 type2。
- disconnectOption
- 仅当正在生成 Java™ 输出时此参数才有意义。值是下列其中一个字,不能使用引号,也不能使用变量:
- explicit(缺省值)
- 在程序调用 sysLib.commit 或 sysLib.rollback 之后,连接保持活动。要释放连接资源,程序必须发出 sysLib.disconnect。
如果使用 type1 作为 commitScope 的值,则必须将参数 disconnectOption 的值设置为(或允许其缺省为)字 explicit。
- automatic
- 提交或回滚将结束现有连接。
- conditional
- 提交或回滚将自动结束现有连接,除非已打开游标并且 hold 选项对该游标生效。有关 hold 选项的详细信息,请参阅 open。
- isolationLevel
- 此参数指示一个数据库事务相对于另一数据库事务的独立性级别。
下列字是按严格递增的顺序排列的,与前面相同,不能使用引号,也不能使用变量:
- readUncommitted
- readCommitted
- repeatableRead
- serializableTransaction(缺省值)
有关详细信息,请参阅 Sun 公司的 JDBC 文档。
- commitControl
- 此参数指定在每次更改数据库之后是否提交。
有效值如下所示:
- noAutoCommit(缺省值)表示提交不是自动进行的,它通常会使执行速度更快。有关此情况下的提交和回滚的规则的详细信息,请参阅逻辑工作单元。
- autoCommit 表示更新即时生效。
可临时将 autoCommit 切换为 noAutoCommit。有关详细信息,请参阅 SysLib.beginDatabaseTransaction。