Транзакция – Инструкция по эксплуатации HEIDENHAIN TNC 640 (34059x-02) ISO programming

Страница 280

Advertising
background image

Программирование: Q-параметры

9.8

Доступ к таблицам с помощью SQL-инструкций

9

280

TNC 640 | Руководство пользователя «Программирование DIN/ISO» | 12/2013

Транзакция

Транзакция состоит, главным образом, из операций:

присвоения таблице (файлу) адреса, выбора строк и

передачи в набор результатов
считывания строк из набора результатов, изменения и/или

включения новых строк
завершения транзакции. В случае изменений/дополнений

строки из буфера набора результатов переписываются в

таблицу (файл).

Тем не менее, требуются дальнейшие операции, для того,

чтобы обработать данные таблицы в NC-программе и избежать

параллельного изменения одних и тех же строк таблицы.

Поэтому, возникает следующий

порядок транзакции

:

1 Для каждой графы, которая должна обрабатываться,

специфицируется Q-параметр. Этот Q-параметр

присваивается столбцу – он "присоединяется" ((SQL

BIND...

).

2 присвоения таблице (файлу) адреса, выбора строк и

передачи в набор результатов Следует дополнительно

определить, какие столбцы следует передавать в буфер

набора результатов (SQL SELECT...). При этом можно

заблокировать выбранные строки. Тогда другие процессы,

хотя и будут доступны для чтения этих строк, но не смогут

изменить введенные в таблицу данные. Следует всегда

блокировать выбранные строки, если были произведены

изменения (SQL SELECT ... FOR UPDATE).

3 Считывание строк из набора результатов, изменение и/или

включение новых строк: – Скопировать строку из набора

результатов в Q-параметры вашей NC-программы (SQL

FETCH...

) – Подготовить изменения в Q-параметрах и

передать в строку набора результатов (SQL UPDATE...)

– Подготовить новую строку таблицы в Q-параметрах и

передать в качестве новой строки в набор результатов (SQL

INSERT...

)

4 Завершения транзакции. – Записи в таблицах подвергались

изменениям/дополнялись: данные из буфера набора

результатов переписываются в таблицу (файл). Сейчас они

сохраняются в файле. Возможная блокировка отменяется,

буфер Result-set освобождается (SQL COMMIT...). – Записи

в таблицах

не

изменялись/дополнялись (доступ только

для чтения): возможная блокировка отменяется, буфер

набора результатов освобождается для пользователя (SQL

ROLLBACK... БЕЗ ИНДЕКСА

).

Можно обрабатывать несколько транзакций параллельно.

Следует обязательно завершить начатую

транзакцию, даже если используется

исключительно доступ для чтения. Только тогда

можно обеспечить сохранение изменений/

дополнений, избежать отмены блокировки и

освобождения буфера набора результатов.

Advertising