Сайт Koder.kz сайт для Delphi программистов.

koder.kz

Web or desctop App Developer

Написать

Ранее мы писали о том как можно создать таблицу используя инструмент IB Expert, делается это по сути просто, в той же статье имеется базовая информация о триггерах и генераторах а так же ключевых полях, в общем все то чем должна обладать таблица в базе данных, но нет одной немаловажной вещи – временные таблицы. 

Для чего может понадобиться временная таблица – очень часто я к примеру ее использую для передачи большого количества параметров обратно на сервер БД, к примеру: есть отчет в который должны попасть определенные товары, что нам нужно? Нам нужно передать в запрос массив ID необходимых товаров, как это делается? Элементарно, создаем временную таблицу, наполняем ее данными и делаем в нее SELECT – профит ;)

Теперь подробней, есть 2 вида TEMP таблиц.

1.Temp Delete ROWS

2.Temp Preserve ROWS

В чем суть, Temp Delete ROWS используется, когда данные обрабатываются в одной транзакции. Например, мы запостили данные, не сделали коммит и запросили эти данные, данные нам «отдались». А если мы запостили данные, сделали коммит и запросили данные, эти данные мы не увидим поскольку они существовали до коммита. 

Теперь Temp Preserve ROWS, официальная дока говорит о том что такого рода таблицы живут на этапе «соединения» с БД, то есть данные доступны в режиме 1 коннекта. Может показаться что это удобней чем Temp Delete ROWS хотя на мой взгляд вопрос спорный, я предпочитаю все же Temp Delete ROWS, хотя возможно просто не сталкивался с необходимостью хранить данные всю сессию работы с БД.

Теперь о том как это все создать используя всеми любимый IB Expert. Легко, смотрим на рисунок ниже:


Далее все действия проходят в «стандартном режиме» работы IB Expert с СУБД Firebird.

Если у вас многоуважаемая аудитория остались вопросы по применению временных таблиц в Firebird пожалуйста задавайте их в комментариях к данному посту.