发行说明


45.2 CLI/ODBC/JDBC 配置 PATCH1 和 PATCH2 设置

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。以下是每个关键字值以及它对驱动程序的影响的描述:

 1 — 这会使驱动程序搜索“count(exp)”,并将其替换为“count(distinct exp)”。
    这是必需的,因为 DB2 的某些版本支持“count(exp)”语法,而该语法是由某些 ODBC
    应用程序生成的。这是服务器不支持“count(exp)”语法时 Microsoft 应用程序所需的。
 
 
 2 — SQLGetTypeInfo() 函数中对 LITERAL_PREFIX 或 LITERAL_SUFFIX 列
     返回 SQL_NULL_DATA 时,某些 ODBC 应用程序被捕获。这会强制驱动
     程序反而返回空的字符串。这是 Impromptu 2.0 所需的。
 
 
 4 — 如果时间戳记的时间和分数部分被设置为零的话,这会强制驱动程序将
     输入时间戳记数据视作日期数据,这是 Microsoft Access 所需的。
 
 
 8 — 这会强制驱动程序将输入时间戳记数据视作时间数据
    (如果时间戳记的日期部分为 1899-12-30 的话)。
     这是 Microsoft Access 所需要的。
 
 
 16 — 未使用。
 
 32 — 这会强制驱动程序不返回有关 SQL_LONGVARCHAR、SQL_LONGVARBINARY 和
      SQL_LONGVARGRAPHIC 列的信息。对于应用程序,它表现得好象不支持长字段
      一样。这是 Lotus 123 所需的。
 
 
 64 — 这会强制驱动程序使终止图形输出字符串为 NULL。这是双字节环境中的
       Microsoft Access 所需要的。
 
 
 128 — 这会强制驱动程序让查询“SELECT Config, nValue FROM MSysConf”转至服务器。
        驱动程序当前返回一个错误,相关联的 SQLSTATE 值为 S0002(找不到表)。
        如果用户已经在数据库中创建了此配置表,且想要应用程序访问它,则这是必需的。
 
 
 256 — 这会强制驱动程序在 SQLStatistics() 调用中首先返回主键列,驱动程序当前返回了
        根据索引名排序的索引,这就是标准的 ODBC 行为。
 
 
 512 — 这会强制驱动程序在 SQLGetFunctions() 中对
        SQL_API_SQLTABLEPRIVILEGES
        和 SQL_API_SQLCOLUMNPRIVILEGES
        返回 FALSE。
 
 
 1024 — 这会强制驱动程序在 SQLExecute() 或 SQLExecDirect() 中返回
         SQL_SUCCESS 而不是 SQL_NO_DATA_FOUND,如果执行
         的 UPDATE 或 DELETE 语句未影响任何行的话。这是 Visual Basic
         应用程序所需的。
 
 
 2048 — 未使用。
 
 4096 — 这会强制驱动程序在处于自动提交方式时关闭游标之后不发出 COMMIT。
 
 
 8192 — 这会强制驱动程序在调用存储过程后返回额外的结果集。此结果集是组成
         该存储过程的输出值的一行结果集。可通过 Powerbuild 应用程序进行访问。
 
 
 32768 — 这会强制驱动程序使 Microsoft Query 应用程序使用 DB2 MVS 同义词。
 
 
 65536 — 这会强制驱动程序在实际上是图形文字的字符文字前人工插入“G”。
          在双字节环境中工作时,总是会提供此补丁程序。
 
 
 131072 — 这会强制驱动程序在时间戳记列作为唯一索引的一部分时,
           将该列反而描述为 CHAR(26) 列。这是 Microsoft 应用程序所需的。
 
 
 262144 — 这会强制驱动程序使用伪目录表 db2cli.procedures 代替 SYSCAT.PROCEDURES
           和 SYSCAT.PROCPARMS 表。
 
 
 524288 — 这会强制驱动程序在对 DB2/400 V3.x 系统执行系统表查询时
           使用 SYSTEM_TABLE_SCHEMA 而不是 TABLE_SCHEMA。
           这会提高性能。
 
 
 1048576 — 这会强制驱动程序将 SQLPutData() 中的零长度字符串视作
            SQL_NULL_DATA。

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 — 保留


[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 ]