Использование конструкта OF в FOR EACH

Обсуждение вопросов по разработке программ в среде продуктов копорации "Progress Software"
Doktor
Новичок
Сообщения: 11
Зарегистрирован: 01 дек 2006, 16:48

Использование конструкта OF в FOR EACH

Сообщение Doktor » 03 апр 2014, 10:33

В документации написано, что как и в случае оператора FIND, использование конструкта OF в FOR EACH возможно лишь тогда, когда смежное поле имеет одинаковое имя в обеих таблицах. Наличие индекса желательно, но не обязательно.
Для проверки наличия смежных записей и в этом случае может использоваться функция CAN-FIND с
модифицированным аргументом:
CAN-FIND(FIRST marks OF student)
или
CAN-FIND(LAST marks OF sudent)

В нашем примере есть две таблицы:
1) _field
ADD TABLE "_Field"
AREA "Schema Area"
FROZEN
HIDDEN

ADD FIELD "_File-recid" OF "_Field" AS recid
FORMAT ">>>>>>>9"
INITIAL "?"
LABEL "File-recid"
POSITION 2
MAX-WIDTH 8
ORDER 2
MANDATORY

ADD FIELD "_Field-Name" OF "_Field" AS character
FORMAT "x(32)"
INITIAL "?"
LABEL "Field-Name"
POSITION 3
MAX-WIDTH 32
ORDER 3
MANDATORY

ADD FIELD "_Data-Type" OF "_Field" AS character
FORMAT "x(9)"
INITIAL "?"
LABEL "Data-Type"
POSITION 4
MAX-WIDTH 18
ORDER 4
MANDATORY

ADD FIELD "_dtype" OF "_Field" AS integer
FORMAT ">>9"
INITIAL "?"
POSITION 5
MAX-WIDTH 4
ORDER 5

ADD FIELD "_Initial" OF "_Field" AS character
FORMAT "x(30)"
INITIAL "?"
LABEL "Initial"
POSITION 6
MAX-WIDTH 250
ORDER 6
CASE-SENSITIVE

ADD FIELD "_Label" OF "_Field" AS character
FORMAT "x(30)"
INITIAL "?"
LABEL "Label"
POSITION 7
MAX-WIDTH 60
ORDER 7
CASE-SENSITIVE

ADD FIELD "_Mandatory" OF "_Field" AS logical
FORMAT "yes/no"
INITIAL "no"
LABEL "Mandatory"
POSITION 8
MAX-WIDTH 1
ORDER 8
MANDATORY

ADD FIELD "_Format" OF "_Field" AS character
FORMAT "x(30)"
INITIAL "?"
LABEL "Format"
POSITION 9
MAX-WIDTH 150
ORDER 9
MANDATORY

ADD FIELD "_sys-field" OF "_Field" AS logical
FORMAT "yes/no"
INITIAL "no"
POSITION 10
MAX-WIDTH 1
ORDER 10

ADD FIELD "_field-rpos" OF "_Field" AS integer
FORMAT ">>9"
INITIAL "?"
LABEL "field-rpos"
POSITION 11
MAX-WIDTH 4
ORDER 11

ADD FIELD "_Decimals" OF "_Field" AS integer
FORMAT ">>>9"
INITIAL "?"
LABEL "Decimals"
POSITION 12
MAX-WIDTH 4
ORDER 12

ADD FIELD "_Order" OF "_Field" AS integer
FORMAT ">>>9"
INITIAL "?"
LABEL "Order"
POSITION 13
MAX-WIDTH 4
ORDER 13
MANDATORY

ADD FIELD "_Can-Read" OF "_Field" AS character
FORMAT "x(63)"
INITIAL "*"
LABEL "Can-Read"
POSITION 14
MAX-WIDTH 126
ORDER 14
MANDATORY

ADD FIELD "_Can-Write" OF "_Field" AS character
FORMAT "x(63)"
INITIAL "*"
LABEL "Can-Write"
POSITION 15
MAX-WIDTH 126
ORDER 15
MANDATORY

ADD FIELD "_Extent" OF "_Field" AS integer
FORMAT ">>>9"
INITIAL "0"
LABEL "Extent"
POSITION 16
MAX-WIDTH 4
ORDER 16
MANDATORY

ADD FIELD "_Valexp" OF "_Field" AS character
FORMAT "x(72)"
INITIAL "?"
LABEL "Valexp"
POSITION 17
MAX-WIDTH 144
ORDER 17

ADD FIELD "_Valmsg" OF "_Field" AS character
FORMAT "x(72)"
INITIAL ""
LABEL "Valmsg"
POSITION 18
MAX-WIDTH 144
ORDER 18
CASE-SENSITIVE

ADD FIELD "_Help" OF "_Field" AS character
FORMAT "x(63)"
INITIAL ""
LABEL "Help"
POSITION 19
MAX-WIDTH 126
ORDER 19
CASE-SENSITIVE

ADD FIELD "_Desc" OF "_Field" AS character
FORMAT "x(72)"
INITIAL ""
LABEL "Desc"
POSITION 20
MAX-WIDTH 4096
ORDER 20
CASE-SENSITIVE

ADD FIELD "_Col-label" OF "_Field" AS character
FORMAT "x(30)"
INITIAL "?"
LABEL "Col-label"
POSITION 21
MAX-WIDTH 60
ORDER 21
CASE-SENSITIVE

ADD FIELD "_Fld-stdtype" OF "_Field" AS integer
FORMAT ">>9"
INITIAL "?"
POSITION 22
MAX-WIDTH 4
ORDER 22

ADD FIELD "_Fld-stlen" OF "_Field" AS integer
FORMAT ">>9"
INITIAL "?"
POSITION 23
MAX-WIDTH 4
ORDER 23

ADD FIELD "_Fld-stoff" OF "_Field" AS integer
FORMAT ">>9"
INITIAL "?"
POSITION 24
MAX-WIDTH 4
ORDER 24

ADD FIELD "_Fld-misc1" OF "_Field" AS integer
FORMAT ">>>9"
INITIAL "?"
POSITION 25
MAX-WIDTH 80
EXTENT 8
ORDER 25

ADD FIELD "_Fld-misc2" OF "_Field" AS character
FORMAT "x(12)"
INITIAL "?"
POSITION 26
MAX-WIDTH 208
EXTENT 8
ORDER 26

ADD FIELD "_Fld-case" OF "_Field" AS logical
FORMAT "yes/no"
INITIAL "no"
LABEL "Fld-case"
POSITION 27
MAX-WIDTH 1
ORDER 27
MANDATORY

ADD FIELD "_Fld-res1" OF "_Field" AS integer
FORMAT ">>>9"
INITIAL "?"
POSITION 28
MAX-WIDTH 80
EXTENT 8
ORDER 28

ADD FIELD "_Fld-res2" OF "_Field" AS character
FORMAT "x(12)"
INITIAL "?"
POSITION 29
MAX-WIDTH 208
EXTENT 8
ORDER 29

ADD FIELD "_For-Id" OF "_Field" AS integer
FORMAT ">>>>9"
INITIAL "?"
POSITION 30
MAX-WIDTH 4
ORDER 30

ADD FIELD "_For-Primary" OF "_Field" AS integer
FORMAT ">>>9"
INITIAL "?"
POSITION 31
MAX-WIDTH 4
ORDER 31

ADD FIELD "_For-Spacing" OF "_Field" AS integer
FORMAT ">>>9"
INITIAL "?"
POSITION 32
MAX-WIDTH 4
ORDER 32

ADD FIELD "_For-Scale" OF "_Field" AS integer
FORMAT ">>>9"
INITIAL "?"
POSITION 33
MAX-WIDTH 4
ORDER 33

ADD FIELD "_For-Name" OF "_Field" AS character
FORMAT "x(32)"
INITIAL "?"
POSITION 34
MAX-WIDTH 64
ORDER 34

ADD FIELD "_For-Type" OF "_Field" AS character
FORMAT "x(12)"
INITIAL "?"
POSITION 35
MAX-WIDTH 24
ORDER 35

ADD FIELD "_For-Itype" OF "_Field" AS integer
FORMAT ">>>>9"
INITIAL "?"
POSITION 36
MAX-WIDTH 4
ORDER 36

ADD FIELD "_For-Xpos" OF "_Field" AS integer
FORMAT ">>>>9"
INITIAL "?"
POSITION 37
MAX-WIDTH 4
ORDER 37

ADD FIELD "_For-Retrieve" OF "_Field" AS logical
FORMAT "yes/no"
INITIAL "?"
POSITION 38
MAX-WIDTH 1
ORDER 38

ADD FIELD "_For-Separator" OF "_Field" AS character
FORMAT "x(1)"
INITIAL "?"
POSITION 39
MAX-WIDTH 2
ORDER 39

ADD FIELD "_For-Maxsize" OF "_Field" AS integer
FORMAT ">>>>>>>9"
INITIAL "?"
POSITION 40
MAX-WIDTH 4
ORDER 40

ADD FIELD "_For-Allocated" OF "_Field" AS integer
FORMAT ">>>>>>>9"
INITIAL "?"
POSITION 41
MAX-WIDTH 4
ORDER 41

ADD FIELD "_View-As" OF "_Field" AS character
FORMAT "x(50)"
INITIAL "?"
LABEL "View-As"
POSITION 42
MAX-WIDTH 250
ORDER 42

ADD FIELD "_Initial-SA" OF "_Field" AS character
FORMAT "x(6)"
INITIAL "?"
LABEL "Initial-SA"
POSITION 43
MAX-WIDTH 12
ORDER 43

ADD FIELD "_Label-SA" OF "_Field" AS character
FORMAT "x(6)"
INITIAL "?"
LABEL "Label-SA"
POSITION 44
MAX-WIDTH 12
ORDER 44

ADD FIELD "_Format-SA" OF "_Field" AS character
FORMAT "x(6)"
INITIAL "?"
LABEL "Format-SA"
POSITION 45
MAX-WIDTH 12
ORDER 45

ADD FIELD "_Valmsg-SA" OF "_Field" AS character
FORMAT "x(6)"
INITIAL ""
LABEL "Valmsg-SA"
POSITION 46
MAX-WIDTH 12
ORDER 46

ADD FIELD "_Help-SA" OF "_Field" AS character
FORMAT "x(6)"
INITIAL ""
LABEL "Help-SA"
POSITION 47
MAX-WIDTH 12
ORDER 47

ADD FIELD "_Col-label-SA" OF "_Field" AS character
FORMAT "x(6)"
INITIAL "?"
LABEL "Col-label-SA"
POSITION 48
MAX-WIDTH 12
ORDER 48

ADD FIELD "_Charset" OF "_Field" AS character
FORMAT "x(32)"
INITIAL "?"
LABEL "Charset"
POSITION 49
MAX-WIDTH 32
ORDER 49

ADD FIELD "_Collation" OF "_Field" AS character
FORMAT "x(32)"
INITIAL "?"
LABEL "Collation"
POSITION 50
MAX-WIDTH 32
ORDER 50

ADD FIELD "_Fetch-Type" OF "_Field" AS character
FORMAT "x(10)"
INITIAL "?"
POSITION 51
MAX-WIDTH 20
ORDER 51

ADD FIELD "_Width" OF "_Field" AS integer
FORMAT ">>>>>>>>>9"
INITIAL "?"
LABEL "Width"
POSITION 52
MAX-WIDTH 4
ORDER 52

ADD FIELD "_Field-Physpos" OF "_Field" AS integer
FORMAT ">>9"
INITIAL "?"
POSITION 53
MAX-WIDTH 4
ORDER 53

ADD FIELD "_User-Misc" OF "_Field" AS character
FORMAT "x(10)"
INITIAL "?"
LABEL "User-Misc"
POSITION 54
MAX-WIDTH 20
HELP "For user use only "
ORDER 54

ADD FIELD "_Attributes1" OF "_Field" AS integer
FORMAT ">>9"
INITIAL "0"
POSITION 55
MAX-WIDTH 4
ORDER 55

ADD FIELD "_Last-modified" OF "_Field" AS datetime-tz
FORMAT "99/99/9999 HH:MM:SS.SSS+HH:MM"
INITIAL "?"
POSITION 56
MAX-WIDTH 12
ORDER 56

ADD FIELD "_Mod-sequence" OF "_Field" AS integer
FORMAT ">>>>>>9"
INITIAL "?"
POSITION 57
MAX-WIDTH 4
ORDER 57

ADD INDEX "_File/Field" ON "_Field"
AREA "Schema Area"
UNIQUE
PRIMARY
INDEX-FIELD "_File-recid" ASCENDING
INDEX-FIELD "_Field-Name" ASCENDING ABBREVIATED

ADD INDEX "_Field-Name" ON "_Field"
AREA "Schema Area"
UNIQUE
INDEX-FIELD "_Field-Name" ASCENDING ABBREVIATED
INDEX-FIELD "_File-recid" ASCENDING

ADD INDEX "_Field-Position" ON "_Field"
AREA "Schema Area"
UNIQUE
INDEX-FIELD "_File-recid" ASCENDING
INDEX-FIELD "_Order" ASCENDING

ADD INDEX "_Fieldphyspos" ON "_Field"
AREA "Schema Area"
UNIQUE
INDEX-FIELD "_File-recid" ASCENDING
INDEX-FIELD "_Field-Physpos" ASCENDING

.
PSC
cpstream=1251
.
0000008698
-----------------------------------
2) _file

ADD TABLE "_File"
AREA "Schema Area"
FROZEN
HIDDEN

ADD FIELD "_File-Name" OF "_File" AS character
FORMAT "x(32)"
INITIAL "?"
LABEL "File-Name"
POSITION 2
MAX-WIDTH 32
ORDER 2
MANDATORY

ADD FIELD "_Prime-Index" OF "_File" AS recid
FORMAT ">>>>>>>9"
INITIAL "?"
LABEL "Prime-Index"
POSITION 3
MAX-WIDTH 8
ORDER 3

ADD FIELD "_File-Number" OF "_File" AS integer
FORMAT "->>>>9"
INITIAL "?"
LABEL "File-Number"
POSITION 4
MAX-WIDTH 4
ORDER 4

ADD FIELD "_dft-pk" OF "_File" AS logical
FORMAT "yes/no"
INITIAL "no"
POSITION 5
MAX-WIDTH 1
ORDER 5

ADD FIELD "_numkey" OF "_File" AS integer
FORMAT ">>9"
INITIAL "0"
POSITION 6
MAX-WIDTH 4
ORDER 6

ADD FIELD "_numkfld" OF "_File" AS integer
FORMAT ">>9"
INITIAL "0"
POSITION 7
MAX-WIDTH 4
ORDER 7

ADD FIELD "_numkcomp" OF "_File" AS integer
FORMAT ">>9"
INITIAL "0"
POSITION 8
MAX-WIDTH 4
ORDER 8

ADD FIELD "_Template" OF "_File" AS recid
FORMAT ">>>>>>>9"
INITIAL "?"
POSITION 9
MAX-WIDTH 8
ORDER 9

ADD FIELD "_numfld" OF "_File" AS integer
FORMAT ">>9"
INITIAL "1"
POSITION 10
MAX-WIDTH 4
ORDER 10

ADD FIELD "_Can-Create" OF "_File" AS character
FORMAT "x(63)"
INITIAL "*"
LABEL "Can-Create"
POSITION 11
MAX-WIDTH 126
ORDER 11
MANDATORY

ADD FIELD "_Can-Read" OF "_File" AS character
FORMAT "x(63)"
INITIAL "*"
LABEL "Can-Read"
POSITION 12
MAX-WIDTH 126
ORDER 12
MANDATORY

ADD FIELD "_Can-Write" OF "_File" AS character
FORMAT "x(63)"
INITIAL "*"
LABEL "Can-Write"
POSITION 13
MAX-WIDTH 126
ORDER 13
MANDATORY

ADD FIELD "_Can-Delete" OF "_File" AS character
FORMAT "x(63)"
INITIAL "*"
LABEL "Can-Delete"
POSITION 14
MAX-WIDTH 126
ORDER 14
MANDATORY

ADD FIELD "_Desc" OF "_File" AS character
FORMAT "x(72)"
INITIAL ""
LABEL "Desc"
POSITION 15
MAX-WIDTH 4096
ORDER 15
CASE-SENSITIVE

ADD FIELD "_Db-recid" OF "_File" AS recid
FORMAT ">>>>>>>9"
INITIAL "?"
LABEL "Db-recid"
POSITION 16
MAX-WIDTH 8
ORDER 16
MANDATORY

ADD FIELD "_Valexp" OF "_File" AS character
FORMAT "x(72)"
INITIAL "?"
LABEL "Valexp"
POSITION 17
MAX-WIDTH 144
ORDER 17

ADD FIELD "_Valmsg" OF "_File" AS character
FORMAT "x(72)"
INITIAL ""
LABEL "Valmsg"
POSITION 18
MAX-WIDTH 144
ORDER 18
CASE-SENSITIVE

ADD FIELD "_Fil-misc1" OF "_File" AS integer
FORMAT ">>>9"
INITIAL "?"
POSITION 19
MAX-WIDTH 80
EXTENT 8
ORDER 19

ADD FIELD "_Fil-misc2" OF "_File" AS character
FORMAT "x(12)"
INITIAL "?"
POSITION 20
MAX-WIDTH 208
EXTENT 8
ORDER 20

ADD FIELD "_Last-change" OF "_File" AS integer
FORMAT "->>>>>>>>>9"
INITIAL "?"
POSITION 21
MAX-WIDTH 4
ORDER 21

ADD FIELD "_DB-lang" OF "_File" AS integer
FORMAT ">>9"
INITIAL "0"
POSITION 22
MAX-WIDTH 4
ORDER 22

ADD FIELD "_Hidden" OF "_File" AS logical
FORMAT "yes/no"
INITIAL "no"
POSITION 23
MAX-WIDTH 1
ORDER 23

ADD FIELD "_Frozen" OF "_File" AS logical
FORMAT "yes/no"
INITIAL "no"
LABEL "Frozen"
POSITION 24
MAX-WIDTH 1
ORDER 24

ADD FIELD "_Dump-name" OF "_File" AS character
FORMAT "x(8)"
INITIAL "?"
LABEL "Dump-name"
POSITION 25
MAX-WIDTH 32
ORDER 25
CASE-SENSITIVE

ADD FIELD "_CRC" OF "_File" AS integer
FORMAT ">>>>>9"
INITIAL "?"
LABEL "CRC"
POSITION 26
MAX-WIDTH 4
ORDER 26

ADD FIELD "_Fil-res1" OF "_File" AS integer
FORMAT ">>>9"
INITIAL "?"
POSITION 27
MAX-WIDTH 80
EXTENT 8
ORDER 27

ADD FIELD "_Fil-res2" OF "_File" AS character
FORMAT "x(12)"
INITIAL "?"
POSITION 28
MAX-WIDTH 208
EXTENT 8
ORDER 28

ADD FIELD "_Cache" OF "_File" AS raw
FORMAT "x(8)"
INITIAL ""
POSITION 29
MAX-WIDTH 2000
ORDER 29
MANDATORY

ADD FIELD "_For-Size" OF "_File" AS integer
FORMAT ">>>>9"
INITIAL "?"
POSITION 30
MAX-WIDTH 4
ORDER 30

ADD FIELD "_For-Flag" OF "_File" AS integer
FORMAT "->,>>>,>>>,>>9"
INITIAL "?"
POSITION 31
MAX-WIDTH 4
ORDER 31

ADD FIELD "_For-Cnt1" OF "_File" AS integer
FORMAT ">>>9"
INITIAL "?"
POSITION 32
MAX-WIDTH 4
ORDER 32

ADD FIELD "_For-Cnt2" OF "_File" AS integer
FORMAT ">>>9"
INITIAL "?"
POSITION 33
MAX-WIDTH 4
ORDER 33

ADD FIELD "_For-Name" OF "_File" AS character
FORMAT "x(32)"
INITIAL "?"
POSITION 34
MAX-WIDTH 64
ORDER 34
CASE-SENSITIVE

ADD FIELD "_For-Owner" OF "_File" AS character
FORMAT "x(32)"
INITIAL "?"
POSITION 35
MAX-WIDTH 64
ORDER 35
CASE-SENSITIVE

ADD FIELD "_For-Format" OF "_File" AS character
FORMAT "x(12)"
INITIAL "?"
POSITION 36
MAX-WIDTH 24
ORDER 36

ADD FIELD "_For-Info" OF "_File" AS character
FORMAT "x(12)"
INITIAL "?"
POSITION 37
MAX-WIDTH 24
ORDER 37

ADD FIELD "_For-Type" OF "_File" AS character
FORMAT "x(20)"
INITIAL "?"
POSITION 38
MAX-WIDTH 40
ORDER 38

ADD FIELD "_For-Id" OF "_File" AS integer
FORMAT ">>>>9"
INITIAL "?"
POSITION 39
MAX-WIDTH 4
ORDER 39

ADD FIELD "_For-Number" OF "_File" AS integer
FORMAT ">>>>9"
INITIAL "?"
POSITION 40
MAX-WIDTH 4
ORDER 40

ADD FIELD "_File-Label" OF "_File" AS character
FORMAT "x(30)"
INITIAL "?"
LABEL "File-Label"
POSITION 41
MAX-WIDTH 60
ORDER 41

ADD FIELD "_Can-Dump" OF "_File" AS character
FORMAT "x(63)"
INITIAL "*"
LABEL "Can-Dump"
POSITION 42
MAX-WIDTH 126
ORDER 42
MANDATORY

ADD FIELD "_Can-Load" OF "_File" AS character
FORMAT "x(63)"
INITIAL "*"
LABEL "Can-Load"
POSITION 43
MAX-WIDTH 126
ORDER 43
MANDATORY

ADD FIELD "_Valmsg-SA" OF "_File" AS character
FORMAT "x(6)"
INITIAL "?"
LABEL "Valmsg-SA"
POSITION 44
MAX-WIDTH 12
ORDER 44

ADD FIELD "_File-Label-SA" OF "_File" AS character
FORMAT "x(6)"
INITIAL "?"
LABEL "File-Label-SA"
POSITION 45
MAX-WIDTH 12
ORDER 45

ADD FIELD "_ianum" OF "_File" AS integer
FORMAT ">>>>9"
INITIAL "?"
LABEL "ianum"
POSITION 46
MAX-WIDTH 4
ORDER 46

ADD FIELD "_Version" OF "_File" AS integer
FORMAT ">>9"
INITIAL "0"
POSITION 47
MAX-WIDTH 4
ORDER 47

ADD FIELD "_Field-map" OF "_File" AS raw
FORMAT "x(8)"
INITIAL "?"
POSITION 48
MAX-WIDTH 240
ORDER 48

ADD FIELD "_Creator" OF "_File" AS character
FORMAT "x(32)"
INITIAL "PUB"
LABEL "Creator"
POSITION 49
MAX-WIDTH 32
ORDER 49
MANDATORY

ADD FIELD "_Has-Ccnstrs" OF "_File" AS character
FORMAT "x(1)"
INITIAL "N"
POSITION 50
MAX-WIDTH 1
ORDER 50
MANDATORY

ADD FIELD "_Has-Fcnstrs" OF "_File" AS character
FORMAT "x(1)"
INITIAL "N"
POSITION 51
MAX-WIDTH 1
ORDER 51
MANDATORY

ADD FIELD "_Has-Pcnstrs" OF "_File" AS character
FORMAT "x(1)"
INITIAL "N"
POSITION 52
MAX-WIDTH 1
ORDER 52
MANDATORY

ADD FIELD "_Has-Ucnstrs" OF "_File" AS character
FORMAT "x(1)"
INITIAL "N"
POSITION 53
MAX-WIDTH 1
ORDER 53
MANDATORY

ADD FIELD "_Owner" OF "_File" AS character
FORMAT "x(32)"
INITIAL "PUB"
LABEL "Owner"
POSITION 54
MAX-WIDTH 32
ORDER 54
MANDATORY

ADD FIELD "_Rssid" OF "_File" AS integer
FORMAT ">>9"
INITIAL "5"
POSITION 55
MAX-WIDTH 4
ORDER 55
MANDATORY

ADD FIELD "_Tbl-Status" OF "_File" AS character
FORMAT "x(1)"
INITIAL "Y"
POSITION 56
MAX-WIDTH 2
ORDER 56
MANDATORY

ADD FIELD "_Tbl-Type" OF "_File" AS character
FORMAT "x(1)"
INITIAL "T"
LABEL "Tbl-Type"
POSITION 57
MAX-WIDTH 2
ORDER 57
MANDATORY

ADD FIELD "_User-Misc" OF "_File" AS character
FORMAT "x(10)"
INITIAL "?"
LABEL "User-Misc"
POSITION 58
MAX-WIDTH 20
HELP "For user use only "
ORDER 58

ADD FIELD "_Last-modified" OF "_File" AS datetime-tz
FORMAT "99/99/9999 HH:MM:SS.SSS+HH:MM"
INITIAL "?"
POSITION 59
MAX-WIDTH 12
ORDER 59

ADD FIELD "_Mod-sequence" OF "_File" AS integer
FORMAT ">>>>>>9"
INITIAL "?"
POSITION 60
MAX-WIDTH 4
ORDER 60

ADD INDEX "_File-Name" ON "_File"
AREA "Schema Area"
PRIMARY
INDEX-FIELD "_File-Name" ASCENDING ABBREVIATED

ADD INDEX "_Db/File" ON "_File"
AREA "Schema Area"
UNIQUE
INDEX-FIELD "_Db-recid" ASCENDING
INDEX-FIELD "_File-Name" ASCENDING ABBREVIATED
INDEX-FIELD "_Owner" ASCENDING

ADD INDEX "_Dump-Name" ON "_File"
AREA "Schema Area"
UNIQUE
INDEX-FIELD "_Db-recid" ASCENDING
INDEX-FIELD "_Dump-name" ASCENDING ABBREVIATED
INDEX-FIELD "_Owner" ASCENDING

ADD INDEX "_File-Number" ON "_File"
AREA "Schema Area"
INDEX-FIELD "_File-Number" ASCENDING

.
PSC
cpstream=1251
.
0000008938
--------------------------------

операторы:
disp CAN-FIND(first dictdb._field OF dictdb._file).

disp CAN-FIND(LAST dictdb._field OF dictdb._file).
выдают значение "NO".

Однако следующий код работает исправно:
find dictdb._file
where dictdb._file._file-name = 'wo_mstr'
no-lock.

for each dictdb._field of dictdb._file no-lock by _order :
disp dictdb._field._field-name

end.
Непонятно только по каким полям осуществляется связь.
Одноименные поля в таблицах есть , но там "?"
dictdb._field._User-Misc
dictdb._file._User-Misc
dictdb._field._Last-modified
dictdb._file._Last-modified
dictdb._field._Mod-sequence
dictdb._file._Mod-sequence.
да и маловероятна организация связи по полю, напримен, dictdb._field._Last-modified

Прошу ваших пояснений.

Аватара пользователя
George
Старожил
Сообщения: 2871
Зарегистрирован: 12 май 2004, 17:03
Откуда: Питер

Re: Использование конструкта OF в FOR EACH

Сообщение George » 03 апр 2014, 10:55


Doktor
Новичок
Сообщения: 11
Зарегистрирован: 01 дек 2006, 16:48

Re: Использование конструкта OF в FOR EACH

Сообщение Doktor » 03 апр 2014, 11:37

Исчерпывающе.
Спасибо за быстрый и понятный ответ.