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

Страница 235

Advertising
background image

HEIDENHAIN TNC 320

235

8.8

Д

о

ст

уп

к

таб

л

иц

ам

с

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