Navigation:  Работа с переменными >

GETQUE - Считать запись из очереди

Previous pageReturn to chapter overviewNext page

Считать запись из очереди:

 getque qname +field1,-field2,..... или getqueue qname +field1,-field2,.....

                       ИЛИ

 getque qname номер или getqueue qname номер

  qname  - имя группы или очереди

  field      - имя поля (можно указать перед именем поля знак сортировки + или -)

  номер  - указатель записи

                  Значение указателя должно находиться в диапазоне

                  от 1 до числа элементов в очереди.

Оператор GETQUE считывает элемент в буфер структуры QUEUE для работы с ним. Если оператор GETQUE не находит соответствующего запросу элемента, то выдается сообщение об ошибке «Entry Not Found» (элемент не найден).

 

GETQUE очередь имя

Ищет элемент очереди, который соответствует значениям полей, указанные параметром имя. Строка имя должна содержать значения атрибутов NAME, относящихся к полям структуры QUEUE, разделенные запятыми, с необязательным знаком + или - спереди. Если очередь предварительно не была упорядочена по полям, указанным в параметре имя, имя указывает «альтернативный порядок сортироки» который кэшируется (то есть последующие сортировки по тем же самым полям очень эффективны).

 

GETQUE очередь ключ

Ищет первый элемент очереди, который соответствует значениям ключевых полей в буфере. Может использоваться несколько (до 16-ти) параметров ключ очереди. Очередь должна быть уже упорядочена по полям, использующимся в качестве ключевых параметров, ключ в очереди указывает «альтернативный порядок сортироки» который кэшируется (то есть последующие сортировки по тем же самым полям очень эффективны).

 

GETQUE очередь указатель в очереди

Выбирает элемент с относительным номером, заданным параметром указатель в очереди в том порядке, в каком элемент был добавлен или порядка последней сортировки. Если указатель в очереди равен нулю, то функция POINTER тоже возвращает значение 0.

 

Выдаваемые сообщения об ошибках:                

08  Insufficient Memory (недостаточно памяти)

30  Entry Not Found (элемент не найден)

35  Record Not Found (запись не найдена)

37  File Not Open (файл не открыт)

43  Record Is Already Held (запись уже заблокирована)

75  Invalid Field Type Descriptor (неправильный описатель типа поля)

 

Пример:

DEFINE DATA

JQ QUEUE,PRE(JQ)

   a1 LONG

   a2 LONG

   s1 STRING(50)

END

ENDDEFINE

 

getqueue JQ +JQ:a1,-JQ:s1

 

# считаем 4ю запись в очереди

getqueue JQ 4

 

 

См. также: DEFINE DATA, PUTQUE, ADDQUE, SORTQUE, POINTER, DELETEQUE, RECORDS