|
К этому устройству также есть другие инструкции:
Фрагмент инструкции
CKREWRITE
If
no
k
ey
in
the
record
is
c
hanged,
the
record
p ointer
con
tinues
to
p oint
to
the
curren
t
record.
Only
a
subsequen
t
CKREAD
adv
ances
the
p ointer
to
the
next
record
in
the
duplicate
k
ey
c
hain.
In
this
case,
y
ou
can
issue
CKREAD
and
CKREWRITE
calls
un
til
all
records
with
the
duplicated
k
ey
v
alue
ha
v
e
b een
rewritten.
If
an
y
k
ey
in
the
record
is
c
hanged,
the
new
k
ey
is
written
to
the
end
of
the
c
hain
of
duplicate
k
eys
in
the
index
area.
After
the
rst
call
to
CKREWRITE ,
the
record
p ointer
p oints
to
the
record
whose
k
ey
v
alue
follo ws
the
c
hanged
k
ey
.
Since
this
k
ey
is
no
w
at
the
end
of
the
c
hain
of
duplicate
k
eys,
a
subsequen
t
call
to
CKREWRITE
skips
all
records
with
k
eys
in
the
duplicate
k
ey
c
hain
and
rewrites
the
record
with
the
next
higher
k
ey
v
alue.
In
this
case,
y
ou
m
ust
precede
eac
h
call
to
CKREWRITE
with
a
call
to
CKSTART
or
CKREADBYKEY
in
order
to
up date
all
subsequen
t
records
with
duplicate
k
eys.
If
y
ou
are
up dating
a
primary
k
ey
v
alue
that
is
duplicated,
it
is
go
o d
practice
to
use
CKDELETE
to
delete
the
selected
record
and
then
rewrite
it
as
a
new
record
with
CKWRITE .
When
the
le
is
op ened
in
random
or
dynamic
mo
de
(access
mo
de
=
1
or
2),
no
prior
call
to
a
read
pro cedure
is
needed.
Y
ou
sp ecify
the
record
to
b e
written
in
W
ORKING-STORA
GE
and
then
call
CKREWRITE .
Ho
w
ev
er,
y
ou
m
ust
use
the
primary
k
ey
to
p osition
to
the
record
to
b e
mo
died.
When
the
pro cedure
is
executed,
the
le
is
searc
hed
for
a
record
whose
primary
k
ey
matches
that
of
the
record
to
b e
written.
If
suc
h
a
record
is
found,
it
is
replaced
b
y
the
record
sp ecied
in
CKREWRITE .
If
not
found,
an
in
v
alid
k
ey
condition
is
diagnosed
and
status
is
set
to
23.
A
call
to
CKREWRITE
in
random
mo
de
up dates
only
the
rst
record
with
a
k
ey
in
the
c
hain
of
duplicate
k
eys.
Regardless
of
the
mo
de,
after
an
y
call
to
CKREWRITE
that
do es
not
mo
dify
a
k
ey
v
alue,
the
record
p ointer
is
p ositioned
to
the
k
ey
of
the
record
just
mo
died.
Ho
w
ev
er,
if
an
y
k
ey
in
the
mo
died
record
w
as
c
hanged,
the
record
m
ust
b e
deleted
and
then
rewritten
b
y
a
write
pro cedure.
If
the
access
mo
de
is
sequen
tial
and
a
k
ey
w
as
mo
died,
the
p ointer
is
mov
ed
to
the
record
with
the
next
k
ey
v
alue
in
ascending
sequence
after
the
mo
died
k
ey
.
If
the
access
mo
de
is
random
or
dynamic,
and
a
k
ey
w
as
mo
died,
the
p ointer
is
mov
ed
to
the
record
with
the
next
k
ey
in
ascending
sequence
after
the
primary
k
ey
in
the
mo
died
record.
This
means
that
in
random
or
dynamic
mo
de
the
k
ey
p ointer
may
c
hange
if
it
w
as
p ointing
to
an
alternate
k
ey
b efore
the
call
to
CKREWRITE .
If
the
le
w
as
op ened
for
shared
access
with
CKOPENSHR ,
then
y
ou
m
ust
lo
c
k
the
le
with
a
call
to
CKLOCK
b efore
rewriting
an
y
records
with
CKREWRITE .
After
the
records
are
rewritten,
y
ou
should
unlo c
k
the
le
with
CKUNLOCK .
T
o
ensure
that
y
ou
are
up dating
the
correct
record
in
sequen
tial
mo
de,
y
ou
should
call
CKLOCK
b efore
p ositioning
the
p ointer
with
CKSTART
or
CKREADBYKEY
,
then
sp ecify
the
sequen
tial
calls
to
CKREAD
A-32
COBOL
Intrinsics
...Эта инструкция также подходит к моделям:
Программное обеспечение - MPE/iX 6.5 Operating System (774.39 kb)