SET (инициировать последовательную обработку файла)
файл
SET( файл,ключ )
файл,указатель_в_файле
ключ
ключ,ключ
ключ,указатель_в_ключе
ключ,ключ,указатель_в_файле
файл | Метка файла. Этот параметр указывает на то, что обработка происходит в том порядке, в котором записи физически расположены в файле. |
ключ | Метка ключа или индекса. Если этот параметр стоит первым, то обработка происходит в последовательности, задаваемой ключом или индексом. |
указатель_в_файле | Числовая константа, переменная или выражение, для значения, возвращаемого функцией POINTER(файл). Конкретное значение зависит от файлового драйвера. |
указатель_в_ключе | Числовая константа, переменная или выражение, для значения, возвращаемого функцией POINTER(ключ). Конкретное значение зависит от файлового драйвера. |
SET инициирует последовательную обработку файла. SET НЕ считывает запись, а только устанавливает порядок обработки и начальную точкц для последующих операторов NEX или PREVIOUS. Первый параметр определяет порядок обработки записей. Второй и третий - задают первую обрабатываемую запись (начальную точку обработки). Если они опущены, то обработка начнется с начала (или конца) файла.
SET(файл) | Задает обработку в физической последовательности с начала (SET .. NEXT) или конца (SET ..PREVIOUS) файла. |
SET(файл,ключ) | Обработка в физическом порядке, начиная с первой записи, значения ключевых полей которой, ближе всего подходят к установленным ранее значениям компонент ключа. |
SET(файл,указатель_в_файле) | Обработка в физическом порядке, начиная с записи, на которую указывает указатель_в_файле. |
SET(ключ) | Обработка в последовательности, задаваемой ключом, с начала (SET..NEXT) или конца (SET ..PREVIOUS) файла в этой последовательности. |
SET(ключ,ключ) | Обработка в последовательности, задаваемой ключом, начиная с записи, значения ключевых полей которой, наиболее близки к установленным значениям компонент ключа. |
SET(ключ,указатель_в_ключе) | Обработка в последовательности, задаваемой ключом, начиная с записи, на которую указывает указатель_в_ключе. |
SET(ключ, ключ, указатель_в_файле) | Обработка по ключу, начиная с записи, содержащей данные, наиболее близкие к содержимому компонент ключа в (с - ?) конкретной записи, задаваемой указателем_в_файле. |
Если второй параметр - ключ, то обработка начнется с первой записи, содержащей значения, наиболее близкие к значениям компонент ключа или индекса. Если найдено ТОЧНОЕ совпадение, то и NEXT и PREVIOUS считают найденную запись. Если нет точного совпадения, то NEXT прочитает запись с ближайшим БОЛЬШИМ значением, а PREVIOUS - с ближайшим меньшим.
Значения указателя_в_файле и указателя_в_ключе зависят от файлового драйвера. Это может быть номер записи, относительный номер байта в файле или какой либо иной вид "опорной точки" в файле. Эти параметры используются для начала обработки с конкретной записи в файле.
Пример:
SET(Customer) !Обработка в физическом порядке
Cus:Name = 'Smith'
SET(Customer,Cus:NameKey)
!Обработка в физическом порядке, начиная с записи, в
! которой поле Name = 'Smith'
SavePtr = POINTER(Customer)
SET(Customer,SavePtr)
!Обработка в физическом порядке, начиная с записи,
! физический номер которой хранится в SavePtr
SET(Cus:NameKey)
!Обработка в порядке, задаваемом ключом NameKey
SavePtr = POINTER(Cus:NameKey)
SET(Cus:NameKey,SavePtr)
!Обработка в порядке, задаваемом ключом NameKey, с за-
! писи, относительный номер которой в ключе содержит
! SavePtr
Cus:Name = 'Smith'
SET(Cus:NameKey,Cus:NameKey)
!Обработка в порядке, задаваемом ключом NameKey, начи-
! ная с первой записи, в которой поле = 'Smith'
Cus:Name = 'Smith'
SavePtr = POINTER(Customer)
SET(Cus:NameKey,Cus:NameKey,SavePtr)
!Обработка в порядке, задаваемом ключом NameKey,
! Name = 'Smith' и номер записи = SavePtr
См. также: , , , ,