powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
7 сообщений из 7, страница 1 из 1
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
    #32819363
sergio2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Елси кто использовал компоненты доступа к БД IBM DB2 - BDE или dbExpres которые имеют Делфи и Билдер С++ . то в результате запроса к ДБ2 , DBGrid неправильно отбражает цифри с плавающей точкой , тоесть вместо 12,4 я вижу 124 ,
у версии 8,1 все работало нормально, а вот старая 7,1 и новую токо что поставил 8,2 обратно нехотят правилоно отображать цифру.

Как с етим бороться ?

Заранее спасибо.
...
Рейтинг: 0 / 0
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
    #32822312
Фотография Alexey Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При работе через BDE имеются проблемы с числами типа DECOMAL. Решается кастом: CAST(Q1.FIELD_NUM AS DOUBLE)
Либо смотри Delphi:
TNumericField.EditFormat
TNumericField.DisplayFormat
TNumericField.OnGetText
...
Рейтинг: 0 / 0
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
    #32822834
sergio2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отобразить цифру получилось спасиба , да вот проблема , поредактировать таблицу немогу , говорит ДБ2 что немогу найти запись или таблицу
...
Рейтинг: 0 / 0
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
    #32822942
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Механизм такой:

DB2 почему-то посылает DECIMAL в текстовом виде (почему не в BCD???), причем разделителем между целой и дробной частью необязательно ставит точку. Софт же вроде BDE (а также VisualAge Smalltalk, к примеру) жестко запрограммирован на точку, а наткнувшись на запятую, остаток строки игнорирует. Таким образом, происходит отбрасывание дробной части.

Я чуть не сказал, что разделитель зависит от текущего locale, но на самом деле DB2 client ведет себя по-разному в зависимости от версии. У коннекта теоретически можно это подстроить (так называемые "патчи"), чтобы всегда было точка, но когда я последний раз это пробовал, оно не сработало (впрочем, 8.2 не проверял).

Учитывая такое поведение DB2-шного клиента, VisualWorks при работе с DB2 понимает разделителем и точку, и запятую.

Как быть с BDE? Можно попробовать поставить decimal separator'ом точку через панель управления - может помочь (а может не помочь). "Патч" тоже попробуйте (я писал об этом здесь: http://sql.ru/forum/actualthread.aspx?tid=113008&hl=patch2). Если решите преобразовывать для показа DECIMAL в DOUBLE, то, во всяком случае, обратно (т.е. при INSERT"ах и UPDATE) постарайтесь использовать не DOUBLE, а STRING.
...
Рейтинг: 0 / 0
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
    #32822981
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если используете DOUBLE в купе с DECIMAL, то желательно использовать ROUND(...), и округлять до соответственной точности DECIMAL,чтоб не нерваться на неприятности...
...
Рейтинг: 0 / 0
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
    #32823104
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблемы больше не в совместном использовании DOUBLE и DECIMAL, а в самих DOUBLE. Для "показать в GRID'е" (нередактируемом, конечно), DOUBLE, пожалуй, все-таки подойдут (не для всяких DECIMAL, конечно). Но хранить в базе, использовать в вычислениях, передавать в качестве параметров - ни-ни!
...
Рейтинг: 0 / 0
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
    #32823508
sergio2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Где то оно зарыто очень близко !!!!.

На серваке стоит ДБ2 вер 8.1
У себя поставил ДБ2 вер 8.2 + поставил пример БД SAMPLE

И вот прикол поля DECIMAL на локално видит GRID отлично ,а на удаленной нехочет (тоесть вместо 45,12 видает 4512).

Видать что то подстоить надо в БД , или поставить на сервак ДБ2 в.8,2 ???
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]