Транзакция, 9 д о ст уп к таб л иц ам с sql- инстр укциями – Инструкция по эксплуатации HEIDENHAIN TNC 320 (340 55x-03)

Страница 416

Advertising
background image

416

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

10.9

Д

о

ст

уп

к

таб

л

иц

ам

с

SQL-

инстр

укциями

Транзакция

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

„

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

в набор результатов.

„

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

включения новых строк.

„

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

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

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

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

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

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

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

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

обозначается Q-параметр. Этот Q-параметр присваивается

столбцу – он „присоединяется“ (SQL BIND...).

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

в буфер Result-set. Следует дополнительно определить, какие

столбцы следует передавать в буфер набора результатов

(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