Трансакция, 9 д о ст упы к таб л ицы с sql- инстр укциями – Инструкция по эксплуатации HEIDENHAIN TNC 320 (340 551-01)
Страница 354
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 не освобождается.