powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Присвоить decimal(18) в datawindow
9 сообщений из 9, страница 1 из 1
Присвоить decimal(18) в datawindow
    #32932073
slav_perm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насколько мне известно по версии 6.5 присвоить 18-ти разрядное число без потери точности в поле decimal в датавиндове никак нельзя. По крайней мере SetItem этого не позволяет. Решена ли эта проблема в более новых версиях ?

И вообще стоит ли переходить на какую либо более новую версию ?
Интересует, прежде всего, с точки зрения
более стабильной работы и легкости конвертации.

спасибо.
...
Рейтинг: 0 / 0
Присвоить decimal(18) в datawindow
    #32932086
Сотников
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Присвоить decimal(18) в datawindow
    #32932104
slav_perm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Там уже был, нужно именно что-то вроде SetItemDecimal
(в противовес к GetItemDecimal которое работает вполне исправно)

Ведь ввод 18-ти разрядных чисел с клавиатуры PowerBuilder вполне поддерживает но эмулировать это через клавиатуру - как-то совсем некрасиво :)
...
Рейтинг: 0 / 0
Присвоить decimal(18) в datawindow
    #32932234
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
decimal{ 0 } ld_Test

ld_Test =  123456789012345678 . 0 
SetItem ( 1 , "test", ld_Test)
Что именно не работает-то?
...
Рейтинг: 0 / 0
Присвоить decimal(18) в datawindow
    #32932319
Фотография Riska
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL99Что именно не работает-то?
Если посмотреть в дебагере, то видно, что, например, вместо 1 dec дает 1.000000035 (или что-то в этом роде). Короче, не точное совпадение. Так во всяком случае до версии 8.0.
...
Рейтинг: 0 / 0
Присвоить decimal(18) в datawindow
    #32932330
Фотография Филипп
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как это ещё должно быть с floating point numbers?
...
Рейтинг: 0 / 0
Присвоить decimal(18) в datawindow
    #32932448
Фотография AIZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще говоря, при работе с Decimal надо использовать Round до нужной точности, особенно если они используются в логических выражениях.
...
Рейтинг: 0 / 0
Присвоить decimal(18) в datawindow
    #32932902
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Riska PL99Что именно не работает-то?
Если посмотреть в дебагере, то видно, что, например, вместо 1 dec дает 1.000000035 (или что-то в этом роде). Короче, не точное совпадение. Так во всяком случае до версии 8.0.Если сначала внимательно прочитать пример, то можно увидеть объявление переменной
Код: plaintext
decimal{ 0 } ld_Test

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
decimal{ 0 } ld_Correct0
decimal{ 6 } ld_Correct6
decimal ld_Wrong

ld_Correct0 =  1234567890123456789 . 0 
ld_Correct6 =  1234567890123456789 . 0 
ld_Wrong =  1234567890123456798 . 0  +  1 

debugbreak()
ld_Correct0 = dec(ld_Wrong/  3 )
ld_Correct6 = dec(ld_Wrong /  3 )
ld_Wrong = dec(ld_Wrong/  3 )


messageBox ("", string (ld_Correct0 ) + "~r~n" + string (ld_Correct6 ) + "~r~n" + string (ld_Wrong))
В таком коде тоже не видно "спецэффектов". Но, в любом случае, рекомендую корректно объявлять переменные - избавитесь от множества глюков
...
Рейтинг: 0 / 0
Присвоить decimal(18) в datawindow
    #32934396
slav_perm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PL99
Код: plaintext
1.
2.
3.
decimal{ 0 } ld_Test

ld_Test =  123456789012345678 . 0 
SetItem ( 1 , "test", ld_Test)
Что именно не работает-то?

Да действительно всё верно,
после присвоения я смотрю сразу в DBF и вижу
123456789012345000
но если сделать GetItemDecimal то исходное число сохраняется ...

ODBC драйвер глючит, или его связка с PB !
Всем спасибо, теперь ясно где копать.

"Легко искать кошку в комнате если знаешь что она там есть."
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Присвоить decimal(18) в datawindow
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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