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

Страница 379

Advertising
background image

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 не освобождается.

Advertising