Замечания по выпуску


49.2 Параметры PATCH1 и PATCH2 и конфигурации CLI/ODBC/JDBC

Для конфигурирования драйвера CLI/ODBC/JDBC можно использовать Ассистент конфигурирования клиента или менеджер драйверов ODBC (если он установлен в системе) или можно вручную отредактировать файл db2cli.ini. Более подробную информацию смотрите в руководстве Дополнение по установке и настройке или CLI Guide and Reference.

Поведение по умолчанию драйвера CLI/ODBC DB2 можно изменить, задав значения обоих ключевых слов PATCH1 и PATCH2 (в файле db2cli.ini или с помощью функции API CLI SQLDriverConnect() или SQLBrowseConnect()).

Задаваемое значение ключевого слова PATCH1 - сумма всех значений, которые нужно задать для него. Например, чтобы задать значения 1, 2 и 8, нужно задать для PATCH1 значение 11. Ниже представлено описание каждого значения и его влияние на драйвер:

1
Драйвер будет выполнять поиск "count(exp)", заменяя его на "count(distinct exp)". Это необходимо, поскольку некоторые версии DB2 поддерживают синтаксис "count(exp)" и этот синтаксис генерируется некоторыми прикладными программами ODBC. Требуется прикладным программам Microsoft, если сервер не поддерживает синтаксис "count(exp)".

2
Работа некоторых прикладных программ ODBC прерывается, если возвращается SQL_NULL_DATA в функции SQLGetTypeInfo() для столбца LITERAL_PREFIX или LITERAL_SUFFIX. Это значение указывает драйверу, что вместо этого нужно возвращать пустую строку. Требуется для Impromptu 2.0.

4
Указывает драйверу, что входные данные типа отметка времени должны интерпретироваться как данные типа дата, если часть значения отметки времени, определяющая значение времени, равна нулю. Требуется для Microsoft Access.

8
Указывает драйверу, что входные данные типа отметка времени должны интерпретироваться как данные типа время, если часть значения отметки времени, определяющая дату, равна 1899-12-30. Требуется для Microsoft Access.

16
Не используется.

32
Указывает драйверу, чтобы он не возвращал информацию о столбцах SQL_LONGVARCHAR, SQL_LONGVARBINARY и SQL_LONGVARGRAPHIC. Для прикладной программы это выглядит так, как будто длинные поля не поддерживаются. Требуется для Lotus 123.

64
Указывает драйверу, чтобы он завершал пустым символом выходные графические строки. Требуется для Microsoft Access в двухбайтной среде.

128
Заставляет драйвер разрешать отправку на сервер запроса "SELECT Config, nValue FROM MSysConf". В настоящее время драйвер возвращает ошибку со значением SQLSTATE, равным S0002 (таблица не найдена). Необходим, если пользователь создал эту таблицу конфигурации в базе данных и хочет, чтобы программа обращалась к ней.

256
Указывает драйверу, что в вызове SQLStatistics() он должен первыми возвращать столбцы первичных ключей. В настоящее время драйвер возвращает индексы отсортированными по именам индексов (это стандартное поведение ODBC).

512
Указывает драйверу, что он должен возвращать FALSE в SQLGetFunctions() для SQL_API_SQLTABLEPRIVILEGES и SQL_API_SQLCOLUMNPRIVILEGES.

1024
Указывает драйверу, что он должен возвращать SQL_SUCCESS вместо SQL_NO_DATA_FOUND в SQLExecute() или SQLExecDirect(), если выполненный оператор UPDATE or 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
Указывает драйверу, что нужно использовать SYSTEM_TABLE_SCHEMA вместо TABLE_SCHEMA при выполнении запроса к системной таблице в системе DB2/400 V3.x. Это повышает производительность.

1048576
Указывает драйверу, что строку нулевой длины для SQLPutData() нужно интерпретировать как SQL_NULL_DATA.

Ключевое слово PATCH2 отличается от ключевого слова PATCH1. В нем несколько значений задаются через запятые. Например, чтобы задать значения 1, 4 и 5, нужно задать для PATCH2 значение "1,4,5". Ниже представлено описание каждого значения и его влияние на драйвер:

 1 - Указывает драйверу, что он должен перевести имя хранимой
     процедуры в операторе CALL в верхний регистр.
 
 2 - Не используется.
 
 3 - Указывает драйверу, что он должен переводить все аргументы
     в вызовах схемы в верхний регистр.
 
 4 - Указывает драйверу, что он должен возвращать для вызовов схем
     (то есть SQLColumns(), SQLProcedureColumns() и т.д.) набор
     результатов в формате Версии 2.1.2 вместо формата Версии 5.
 
 5 - Указывает драйверу, что не нужно оптимизировать обработку
     входных столбцов VARCHAR, если указатель на данные и указатель
     на длину идут в памяти подряд.
 
 6 - Указывает драйверу, что он должен возвращать сообщение, что
     указатели с прокруткой не поддерживаются. Требуется для программ
     Visual Basic, если используются клиент DB2 Версии 5 и сервер
     DB2 UDB Версии 5.
 
 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 в условии внешнего объединения.
      Если в PATCH2 задано это значение, драйвер ODBC IBM DB2 будет
      удалять скобки, если условие внешнего объединения входит в
      управляющую последовательность ODBC. Это значение следует
      использовать только при работе с DB2 MVS 4.1. 
 20 - В настоящее время DB2 on MVS не поддерживает предикат BETWEEN
      с маркерами параметров в качестве обоих операндов (выражение
      ? BETWEEN ?). Если задано это значение, драйвер ODBC IBM перепишет
      такой предикат в виде (выражение >= ? and выражение <= ?). 
 21 - Задать все только выходные (OUTPUT) параметры для хранимых процедур как SQL_NULL_DATA
 22 - Если задано это значение, драйвер ODBC IBM будет сообщать,
      что внешнее (OUTER) объединение не поддерживается.
      Предназначено для прикладных программ, генерирующих SELECT
      DISTINCT col1 или ORDER BY col1 при использовании оператора
      внешнего объединения, где col1 имеет длину больше 254 символов,
      в результате DB2 UDB возвращает сообщение об ошибке (поскольку
      DB2 UDB не поддерживает в таких конструкциях столбцы длиной
      более 254 байт)
 23 - Не оптимизировать ввод для параметров, связанных с cbColDef=0 
 24 - Обходной прием для работы со значениями времени - они представляются в символьном виде
 25 - Обходной прием для работы с десятичными столбцами -
      из их символьного представления удаляются конечные нули
 26 - Не возвращать прикладной программе sqlcode 464 -
      указывает, что возвращены наборы результатов
 27 - Использовать для SQLTables значение ключевого слова TABLETYPE,
      даже если прикладная программа задает правильное значение
 28 - Описывает столбцы real как столбцы double
 29 - Исправление работы ADO для десятичных столбцов - удаляет начальные
      нули для значений x, где 1 > x > -1
      (Требуется только для некоторых версий MDAC)
 30 - Запрещает оптимизацию кэширования хранимых процедур
 31 - Сообщать данные статистики для алиасов в вызове SQLStatistics
 32 - Переопределяет обработку кода причины 4 для sqlcode -727
 33 - Возвращать преобразованное в символьную форму значение
      отметки времени в формате ISO
      (а не в формате ODBC)
 34 - Сообщать значение CHAR для столбцов CHAR FOR BIT DATA
 35 - Сообщать о неверном TABLENAME, если запрошено
      SQL_DESC_BASE_TABLE_NAME - оптимизация только для чтения ADO
 36 - Зарезервировано
 37 - Зарезервировано


[ Начало страницы | Страница назад | Страница вперед | Содержание | Индекс ]