Navigation: Работа с переменными > PUTQUE - Записать запись в очередь |
![]() ![]() ![]() |
Записать запись в очередь:
putque qname +field1,-field2,..... или putqueue qname +field1,-field2,.....
qname - имя очереди
field - имя поля (можно указать перед именем поля знак сортировки + или -)
Оператор PUTQUE записывает ранее полученную запись в QUEUE
Оператор PUTQUE после успешного выполнения оператора GETQUE или ADDQUE записывает содержимое буфера данных обратно в очередь в позицию, возвращенной процедурой POINTER. Если перед оператором PUTQUE не выполнялся оператор GETQUE или ADDQUE, то выдается сообщение об ошибке «Entry Not Found» (элемент не найден).
PUTQUE очередь имя
После успешно выполненного оператора GETQUE или ADDQUE возвращает элемент в упорядоченную очередь, сохраняя упорядоченность, если любые ключевые поля изменили свое значение. Строка имя должна содержать значения атрибутов NAME полей из структуры QUEUE, разделенных запятыми с необязательным знаком «+» или «-« спереди, означающим возрастающую или убывающую последовательность сортировки. Если в очереди имеется несколько элементов с данным значением поля, то записываемый элемент становится среди них последним.
PUTQUE очередь ключ
После успешно выполненного оператора GETQUE или ADDQUE возвращает элемент в упорядоченную очередь, сохраняя упорядоченность, если любые ключевые поля изменили свое значение. Может использоваться несколько (до 16-ти) параметров ключ, разделенных запятыми, с необязательным знаком «+» или «-» спереди, означающим возрастающую или убывающую последовательность сортировки. Если в очереди имеется несколько элементов с данным значением ключевого поля, то записываемый элемент становится среди них последним.
PUTQUE очередь
Записывает данные обратно в ту же самую относительную позицию внутри очереди, к которой обращался последний успешно выполненный оператор GETQUE или ADDQUE.
Выдаваемые сообщения об ошибках:
05 Access Denied (доступ запрещен)
08 Insufficient Memory (недостаточно памяти)
30 Entry Not Found (элемент не найден)
33 Record Not Available (запись недоступна)
40 Creates Duplicate Key (создается повторяющееся значение ключа)
75 Invalid Field Type Descriptor (неправильный описатель типа поля)
89 Record Changed By Another Station (запись изменена другой рабочей станцией)
Пример:
DEFINE DATA
JQ QUEUE,PRE(JQ)
a1 LONG
a2 LONG
s1 STRING(50)
END
ENDDEFINE
getqueue JQ 1
if expr [:QERRORCODE:]=0
setdata JQ '12','15','Строка текста'
putqueue JQ +JQ:a1
else
pause Ошибка чтения очереди: [:QERROR:]
endif
См. также: DEFINE DATA, GETQUE, ADDQUE, SORTQUE, POINTER, DELETEQUE