|
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
|
|||
---|---|---|---|
#18+
Елси кто использовал компоненты доступа к БД IBM DB2 - BDE или dbExpres которые имеют Делфи и Билдер С++ . то в результате запроса к ДБ2 , DBGrid неправильно отбражает цифри с плавающей точкой , тоесть вместо 12,4 я вижу 124 , у версии 8,1 все работало нормально, а вот старая 7,1 и новую токо что поставил 8,2 обратно нехотят правилоно отображать цифру. Как с етим бороться ? Заранее спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.12.2004, 17:47 |
|
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
|
|||
---|---|---|---|
#18+
При работе через BDE имеются проблемы с числами типа DECOMAL. Решается кастом: CAST(Q1.FIELD_NUM AS DOUBLE) Либо смотри Delphi: TNumericField.EditFormat TNumericField.DisplayFormat TNumericField.OnGetText ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2004, 09:56 |
|
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
|
|||
---|---|---|---|
#18+
Отобразить цифру получилось спасиба , да вот проблема , поредактировать таблицу немогу , говорит ДБ2 что немогу найти запись или таблицу ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2004, 12:15 |
|
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
|
|||
---|---|---|---|
#18+
Механизм такой: 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. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2004, 12:41 |
|
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
|
|||
---|---|---|---|
#18+
если используете DOUBLE в купе с DECIMAL, то желательно использовать ROUND(...), и округлять до соответственной точности DECIMAL,чтоб не нерваться на неприятности... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2004, 12:52 |
|
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
|
|||
---|---|---|---|
#18+
Проблемы больше не в совместном использовании DOUBLE и DECIMAL, а в самих DOUBLE. Для "показать в GRID'е" (нередактируемом, конечно), DOUBLE, пожалуй, все-таки подойдут (не для всяких DECIMAL, конечно). Но хранить в базе, использовать в вычислениях, передавать в качестве параметров - ни-ни! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2004, 13:29 |
|
Ишо вопрос. Как побороть непрвильное отображение цифр в DBGrid e?
|
|||
---|---|---|---|
#18+
Где то оно зарыто очень близко !!!!. На серваке стоит ДБ2 вер 8.1 У себя поставил ДБ2 вер 8.2 + поставил пример БД SAMPLE И вот прикол поля DECIMAL на локално видит GRID отлично ,а на удаленной нехочет (тоесть вместо 45,12 видает 4512). Видать что то подстоить надо в БД , или поставить на сервак ДБ2 в.8,2 ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.12.2004, 15:30 |
|
|
start [/forum/topic.php?fid=43&msg=32822312&tid=1606070]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
37ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 285ms |
total: | 406ms |
0 / 0 |