SRCINSEL(file: IDENT;
searchType: SEARCHTYPE
[; VAR oc: SCAL[2] ]
{; keyFieldValue: ANYTYPE });
SRCINSEL(file: IDENT;
searchType: SEARCHTYPE
{; keyFieldValue: ANYTYPE }
): SCAL[2];
SEARCHTYPE = LT | LE | EQ | GE | GT;
Ищет в текущем селекте файла file по текущему индексу запись, наиболее удовлетворяющую типу поиска searchType для заданных значений полей индекса. Рассмотрим возможные типы поиска:
Номер записи | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
Значение ключевого поля | 10 | 10 | 20 | 30 | 40 | 40 | 50 | 60 | 70 | 70 |
Искомое значение | 5 | 10 | 15 | 20 | 35 | 40 | 45 | 70 | 75 |
---|---|---|---|---|---|---|---|---|---|
Номер результирующей записи | нет записи | нет записи | 2 | 2 | 4 | 4 | 6 | 8 | 10 |
Искомое значение | 5 | 10 | 15 | 20 | 35 | 40 | 45 | 70 | 75 |
---|---|---|---|---|---|---|---|---|---|
Номер результирующей записи | нет записи | 2 | 2 | 3 | 4 | 6 | 6 | 10 | 10 |
Искомое значение | 5 | 10 | 15 | 20 | 35 | 40 | 45 | 70 | 75 |
---|---|---|---|---|---|---|---|---|---|
Номер результирующей записи | нет записи | 1 | нет записи | 3 | нет записи | 5 | нет записи | 9 | нет записи |
Искомое значение | 5 | 10 | 15 | 20 | 35 | 40 | 45 | 70 | 75 |
---|---|---|---|---|---|---|---|---|---|
Номер результирующей записи | 1 | 1 | 3 | 3 | 5 | 5 | 7 | 9 | нет записи |
Искомое значение | 5 | 10 | 15 | 20 | 35 | 40 | 45 | 70 | 75 |
---|---|---|---|---|---|---|---|---|---|
Номер результирующей записи | 1 | 3 | 3 | 4 | 5 | 7 | 7 | нет записи | нет записи |
keyFieldValue - это значения полей ключа, не участвующих в текущем селекте, определяющие шаблон поиска. Эти значения должны быть заданы в том же порядке, что и поля индекса и быть совместимы по присваиванию с типами соответствующих полей. Для выполнения поиска типа EQ обязаны быть указаны значения всех полей, не участвующих в текущем селекте, для других типов поиска могут быть опущены поля с меньшим весом в индексе.
Если поиск выполнен успешно, процедура SRCINSEL заполняет параметр oc значением 1, а текущей становится позиция с найденной записью, в противном случае текущая запись не определена, а параметр oc устанавливается в 0. Когда SRCINSEL применяется как функция, она возвращает значение, совпадающее по смыслу с параметром oc процедуры. Это же возвращает и функция OCCURE, вызванная с тем же параметром file после выполнения SRCINSEL.
На результат работы процедуры может влиять наличие файлового фильтра (см. TABLE.Filter).