Документация по Clarion
файл,ключ
GET( файл,указатель_в_файле[,длина] )
ключ,указатель_в_ключе
файл | Метка файла. |
ключ | Метка ключа или индекса. |
указатель_в_файле | Числовая константа, переменная или выражение, содержащая значение, возвращаемое функцией POINTER(файл). Конкретное значение зависит от файлового драйвера. |
указатель_в_ключе | Числовая константа, переменная или выражение, содержащая значение, возвращаемое функцией POINTER(ключ). Конкретное значение зависит от файлового драйвера. |
длина | Целочисленная константа, переменная или выражение, содержащее число байт, записываемых в файл. ДЛИНА должная быть больше нуля но не больше длины структуры RECORD. Если ДЛИНА пропущена или выходит за разрешенный диапазон, то она сбрасывается до длины структуры RECORD. |
Оператор GET находит заданную запись в файле данных и считывает ее в буфер структуры RECORD. Прямой доступ к записи осуществляется либо по относительному номеру записи в файле либо совпадению ключевого поля со значением заданного ключа.
GET(файл,ключ) | Получает первую запись из файла (согласно ключу), которая содержит значения, совпадающие со значениями компонент ключа. |
GET(файл,указатель_в_файле[,длина]) | Получает запись из файла на которую указывает указатель_в_файле. Если указатель_в_файле равен нулю, то указатель на текущую запись очищается и запись не считывается. |
GET(ключ,указатель_в_ключе) | Получает запись на которую указывает указатель_в_ключе. |
Значения указателя_в_файле и указателя_в_ключе зависят от файлового драйвера. Это может быть: номер записи; номер байта в файле или какой-либо другой вид "опорной точки" в файле. Если значение указателя_в_файле или указателя_в_ключе выходят за разрешенные пределы или в файле нет подходящих по значениям записей, возникает ошибка "Запись не найдена".
Возвращаемые ошибки:
35 Запись не найдена
37 Файл еще не открыт
43 Запись уже заблокирована
Пример:
Customer FILE,DRIVER('Clarion'),PRE(Cus)
NameKey KEY(Cus:Name),OPT
NbrKey KEY(Cus:Number),OPT
Rec RECORD
Name STRING(20)
Number SHORT
. .
CODE
Cus:Name = 'Clarion' !Инициализируем ключевое поле
GET(Customer,Cus:NameKey) ! получаем соответствующую запись
IF ERRORCODE() THEN STOP(ERROR()).
GET(Customer,3) !Читаем третью физическую запись
! файла
IF ERRORCODE() THEN STOP(ERROR()).
GET(Cus:NameKey,3) !Получаем третью запись в порядке,
! задаваемом ключом NameKey
IF ERRORCODE() THEN STOP(ERROR()).
См. также: ,