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

       

PUT (записать запись обратно в файл)



PUT(файл[,указатель_в_файле][,длина])


файл Метка файла.
указатель_в_файле Числовая константа, переменная или выражение, содержащая значение, возвращаемое функцией POINTER(файл). Конкретное значение зависит от файлового драйвера.
длина Целочисленная константа, переменная или выражение, содержащее число байт, записываемых в файл. ДЛИНА должная быть больше нуля но не больше длины структуры RECORD. Если ДЛИНА пропущена или выходит за разрешенный диапазон, то она сбрасывается до длины структуры RECORD.

Оператор PUT записывает содержимое буфера RECORD в последнюю запись, к которой производилось обращение.

PUT(файл) Записывает запись в то место, к которому последний раз обращались NEXT, PREVIOUS, GET, или ADD. Если изменились значения ключевых полей, то ключи (НЕ индексы!) обновляются.
PUT(файл,указатель_в_файле) Записывает запись в то место, на которое указывает указатель_в_файле и обновляет ключи.
PUT(файл,указатель_в_файле,длина) Записывает ДЛИНА байтов в то место, на которое указывает указатель_в_файле и обновляет ключи.



Если к записи не было обращения операторами NEXT, PREVIOUS, GET и ADD или она была удалена, то возвращается ошибка "Запись недоступна". PUT также может вернуть ошибку "Такой ключ уже есть". При возникновении какой-либо ошибки файл не изменяется.
Возвращаемые ошибки:
05 Доступ запрещен
33 Запись недоступна
40 Такой ключ уже есть
Пример:
SET(Trn:DateKey) !End/Beginning of file in keyed sequence
LOOP UNTIL BOF(Trans) !Читаем все записи в обратном порядке
PREVIOUS(Trans) ! одну за другой
IF ERRORCODE() THEN STOP(ERROR()).
DO LastInFirstOut !Вызываем процедуру LIFO
PUT(Trans) !Записываем транзакцию обратно в файл
IF ERRORCODE() THEN STOP(ERROR()).
. !Конец цикла
См. также: , , ,



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