Документация по Clarion

       

PDECIMAL (то же, что и DECIMAL)


метка PDECIMAL(length[,places][,iinitial value])[,DIM()][,OVER()][,NAME()][,EXTERNAL]

Формат: dl5 dl4 d13 dl2 d11 d10 d9 d8 d7 d6 d5 d4 d3 d2 d1 d0 s
Биты: 63________________________________________ 5_0
Диапазон: -999,999,999,999,999..999,999,999,999,999
length ТРЕБУЕМАЯ числовая константа, содержащая общее число десятичных цифр (в целой и дробной частях вместе взятых) в переменной. Максимальная длина 15.
places Числовая константа, уточняющая количество цифр в дробной части (справа от десятичной точки) в переменной. Она должна быть меньше или равна параметру length. Если опущена, то описываема переменная считается целочисленной.
initial value Числовая константа. Если опущена, то подразумевается ноль.
DIM Размерность(и) переменной как массива.
OVER Разделяет один и тот же участок памяти с другой переменной
NAME Задает внешнее имя для переменной.
EXTERNAL Указывает, что переменная описана и память под нее выделяется во внешней библиотеке. НЕ разрешено для описаний FILE, QUEUE и GROUP.



PDECIMAL описывает переменной длины десятичную переменную со знаком в формате Btrieve и IBM/EBCDIC. Каждый байт PDECIMAL содержит две десятичные цифры, по 4 бита на цифру. Самый правый байт содержит знак в своем младшем ниббле (OFh или OCh позитивный, ODh негативный и одну десятичную цифру. Таким образом, PDECIMAL-переменные всегда содержат строго "нечетное" число цифр (скажем, PDECIMAL(10) и PDECIMAL(ll) используют по 6 байт).
Присвоение числа, выходящего за диапазон PDECIMAL приводит к непредсказуемым результатам.
Пример:
Countl PDECIMAL(5,O) !Declare three-byte signed packed decimal
Count2 PDECIMAL(5),OVER(Countl) !Declare OVER the three-byte
signed packed decimal
Count3 PDECIMAL(5,O),DIM(4) !Declare it an array of 4 decimals
Count4 PDECIMAL(5,0,5) !Declare with initial value
Count5 PDECIMAL(5,O),EXTERNAL !Declare as external
Count6 PDECIMAL(5,O),NAME('SixCount') !Declare with external name
ExampleFile FILE,DRIVER('Btrieve') !Declare a file
Record RECORD
Count7 PDECIMAL(5,O),NAME('Counter') !Declare with
. . ! external name



Содержание раздела