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