CLI/ODBC/JDBC 驱动程序可通过“客户机配置辅助程序”或“ODBC 驱动程序管理器”来进行配置(如果它安装在系统上的话),或者通过手工编辑 db2cli.ini 文件来进行配置。有关更多信息,参见《安装和配置补遗》或 CLI Guide and Reference。
可通过 db2cli.ini 文件,或通过 SQLDriverConnect() 或 SQLBrowseConnect() CLI API,为 PATCH1 和 PATCH2 关键字指定值,来修改 DB2 CLI/ODBC 驱动程序的缺省行为。
将用户要设置的所有关键字加在一起来指定 PATCH1 关键字。例如,如果指定了补丁程序 1、2 和 8,则 PATCH1 将具有值 11。以下是每个关键字值以及它对驱动程序的影响的描述:
PATCH2 关键字与 PATCH1 关键字不同。对于 PATCH2,是使用逗号分隔符来指定多个补丁程序。例如,如果指定了补丁程序 1、4 和 5,则 PATCH2 将具有值“1,4,5”。以下是每个关键字值以及它对驱动程序的影响的描述:
1 — 这会强制驱动程序将 CALL 语句中的存储过程名转换为大写。 2 — 未使用。 3 — 它强制驱动程序把模式调用的所有自变量都转换为大写。 4 — 这会强制驱动程序对模式调用(即 SQLColumns()、SQLProcedureColumns() 等等)返回类似版本 2.1.2 的结果集,而不是类似版本 5 的结果集。 5 — 这会强制驱动程序不对输入 VARCHAR 列的处理进行优化,其中指向数据的指针和指向长度的指针在内存中是连续的。 6 — 这会强制驱动程序返回消息“可滚动游标不受支持”。如果 DB2 客户机为 版本 5 且服务器为“DB2 UDB 版本 5”的话,这是 Visual Basic 程序所需的。 7 — 这会强制驱动程序将所有 GRAPHIC 列数据类型映射至 CHAR 列数据类型。这是双字节环境所需要的。 8 — 它强制驱动程序忽略模式调用中的目录搜索自变量。 9 — 不要落实游标的“提前关闭” 10 — 未使用 11 — 报告支持目录名,(VB 存储过程) 12 — 从模式调用自变量中除去双引号,(Visual Interdev) 13 — 不要将 db2cli.ini 中的关键字追加到输出连接字符串 14 — 忽略 SQLProcedures() 和 SQLProcedureColumns() 中的模式名 15 — 在字符输出中始终使用句点作为小数分隔符 16 — 对于每次打开,强制返回描述信息 17 — 不要在描述信息中返回列名 18 — 试图用参数标记替换文字 19 — 目前 DB2 MVS V4.1 不支持 ODBC 语法,该语法允许 ON 子句和 Outer 连接子句 中出现括号。打开此 PATCH2 将导致 IBM DB2 ODBC 驱动程序在 outer 连接子句 处于 OCBC 转义序列中时去掉括号。仅当对 DB2 MVS 4.1 运行时,才应使用此 PATCH2。 20 — 目前,MVS 上的 DB2 不支持将两个操作数作为参数标记的 BETWEEN 谓词(表达式为 ? BETWEEN ?)。打开此补丁程序将导致“IBM ODBC 驱动程序”将该谓词重写为 (表达式 >= ? 和表达式 <= ?)。 21 — 只将存储过程的所有 OUTPUT 参数设置为 SQL_NULL_DATA 22 — 此 PATCH2 会导致 IBM ODBC 驱动程序将 OUTER 连接报告为不受支持。这是针对 在使用 outer 连接语句时生成 SELECT DISTINCT col1 或 ORDER BY col1(其中 col1 的长度大于 254 个字符)的应用程序而言的,并会导致 DB2 UDB 返回错误 (因为 DB2 UDB 不支持使用长度超过 254 个字节的列) 23 — 不要优化与 cbColDef=0 绑定的参数输入 24 — 将“时间”值映射为“字符”的存取解决方法 25 — 小数列的存取解决方法 — 除去 char 表示法中的结尾零 26 — 不要将 sqlcode 464 返回至应用程序 — 指示返回了结果集 27 — 强制 SQLTables 使用 TABLETYPE 关键字值,即使应用程序指定了有效值 28 — 将实型列描述为双精度型列 29 — 小数列的 ADO 解决方法 — 除去值 x 的前导零 其中 1 > x > -1(仅某些 MDAC 版本需要) 30 — 禁用“存储过程”高速缓存优化 31 — 报告关于 SQLStatistics 调用上的别名的统计信息 32 — 覆盖 sqlcode -727 原因码 4 处理 33 — 在转换为 char 时返回 ISO 版本的时间戳记(与 ODBC 版本相对照) 34 — 将 CHAR FOR BIT DATA 列报告为 CHAR 35 — 在请求 SQL_DESC_BASE_TABLE_NAME 时报告无效的 TABLENAME - ADO 只读优化 36 — 保留 37 — 保留