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

Страница 354

Advertising
background image

354

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

10.9

Д

о

ст

упы

к

таб

л

ицы

с

SQL-

инстр

укциями

Трансакция

В принципе трансакция состоит из операций:

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

Result-set.

считывания строк из Result-set, изменения и/или включения

новых строк.

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

строки из буфера Result-set переписываются в таблицу

(файл).

Требуются однако еще дальшие операции, для обработки вводов

в таблицы в программе ЧУ и для избежания параллельного

изменения тех же самых строк таблицы. Поэтому возникает

следующий порядок трансакции:

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

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

присвоивается графе – он „привязывается“ (SQL BIND...).

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

буфер Result-set. Дополнительно дефинируете, которые

графы следует передавать в буфер Result-set (SQL

SELECT...).

При этом можете «блокировать» избранные строки. Тогда

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

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

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

(SQL SELECT ... FOR UPDATE).

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

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

– переписание строки буфера Result-sets в Q-параметры

программы ЧУ (SQL FETCH...)

– подготовка изменений в Q-параметрах и передача в строку

буфера Result-set (SQL UPDATE...)

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

передача в качестве новой строки в буфер Result-set (SQL

INSERT...)

4 Заключение трансакции.

– Записи в таблицы изменяются/дополняются: Данные из

буфера Result-set переписываются в таблицу (файл). Сейчас

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

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

– Записи в таблицы не изменяются/дополняются (только

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

Result-set освобождается (SQL ROLLBACK... БЕЗ ИНДЕКСА).

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

Следует обязательно заключить начатую трансакцию

– даже если используете исключительно доступ

чтения. Только тогда обеспечивается, что изменения/

дополнения не теряются, блокировка не отменяется и

буфер Result-set не освобождается.

Advertising