Как установить локаль драйвера ODBC DB2?

Я хочу импортировать данные из базы данных DB2 в MS Access через ODBC. Соединение установлено и работает, но десятичные значения преобразуются из-за некоторых проблем с локалью (немецкая Windows).

234,75 заканчивается как 23475 в таблице Access.

У меня была такая же проблема с Oracle, но я смог ее исправить, установив для диска ODBC локаль США. Как это сделать с помощью драйвера ODBC DB2?

DB2 v9.5


person OliverS    schedule 15.09.2009    source источник


Ответы (3)


Есть ли у вас возможность прочитать некоторые свойства вашего поля через соединение ODBC? В этом случае, я думаю, вы могли бы обнаружить, что некоторые из этих свойств помогут вам определить тип поля, значение по умолчанию, длину и т. д. Тогда вы сможете включить в свой код импорта некоторые инструкции по преобразованию чисел.

Вы пытались изменить настройки языкового стандарта Windows на США (start/Settings/Control Panel/Regional and language Settings/Regional Settings/customize)?

Даже если у вас немецкая версия Windows, вы можете установить такие параметры, как десятичный разделитель, дата и т. д., в соответствии с другими стандартами (это означает, например, что вы можете специально объявить «.» в качестве десятичного разделителя вместо «,» для всех приложений Windows.

person Philippe Grondier    schedule 15.09.2009
comment
Да, я пытался изменить региональные настройки, но это не помогло. Функция импорта Access не предлагает никаких настроек, но, делая это вручную с помощью VBA, я мог бы воспользоваться вашим советом по типам полей. - person OliverS; 16.09.2009

Когда вы устанавливаете соединение ODBC с диспетчером связанных таблиц и щелкаете по всем экранам с именем базы данных, какие учетные данные использовать, там есть флажок «Использовать региональные настройки при выводе дат, времени и т. д.... что-то вроде этого ..." Это проверено?

person Dale    schedule 17.09.2009
comment
Я использую Access 2007, диспетчер связанных таблиц не предлагает никаких диалоговых окон региональных настроек. - person OliverS; 18.09.2009

Хотя это старая публикация, некоторым людям может быть полезно решение этой проблемы (с которым я также столкнулся). Решение:

  1. Запустите администратора ODBC
  2. Откройте DSN
  3. Открыть вкладку Дополнительно
  4. Настройка Добавьте строку со следующими характеристиками:

    • CLI Parameter: Patch2
    • Стоимость: 15

Это говорит клиенту DB2 использовать '.' в качестве десятичного разделителя вместо локали.

Проверено на: DB2 V9.7, Access 2010

Источник: http://www-01.ibm.com/support/knowledgecenter/#!/SSEPGG_9.7.0/com.ibm.db2.luw.apdv.cli.doc/doc/r0008805.html

person Arne Tjong Kim Sang    schedule 08.05.2015