Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Динамический SQL и стандарты SQL:2003

Динамический SQL и стандарты SQL:2003На сегодняшний момент мы уже поставлены перед фактом, что стандарты ANSI/ISO часто отличаются от того, что предлагают конкретные реализации СУБД. Это также касается и динамического SQL, который существовал задолго до принятия стандартов ANSI/ISO. Компания IBM внедрила свою версию динамического SQL в начале 1980-х годов, и все ведущие производители СУБД последовали ей, но на свой манер. Этот тезис особенно относится к обработке динамических запросов, где каждая СУБД имеет свой собственный механизм обработки результирующего набора данных, который вернул запрос. К примеру, все три крупнейшие СУБД, рассматриваемые в настоящей книге, используют специальную динамическую структуру данных SQL, известную как SQL Data Area (область данных SQL, SQLDA), для обработки вывода динамических запросов. Однако все три производителя внедрили собственные версии этой структуры, не совместимые со всеми остальными. В стандарте SQL:2003 структура SQLDA заменена аналогичной конструкцией, названной Dynamic SQL Descriptor. Она играет ту же роль, однако имеет иную конструкцию.

Динамический SQL унаследовал большинство элементов от статического внедренного SQL, в частности, подключение к базе данных и отключение от нее, объявление управляющих переменных, подтверждение и откат транзакций. Внедренные инструкции начинаются с ключевых слов EXEC SQL и заканчиваются специфичными для языка разделителями. Однако, так как инструкции динамического SQL обрабатываются во время выполнения, а не на этапе компиляции программы, были введены дополнительные элементы SQL, позволяющие пользователям формировать свои инструкции “на лету”. Как уже отмечалось, инструкции DML/ DDL проще обрабатывать, чем динамические запросы, которые требуют дополнительной подготовки. В следующих разделах главы будут вкратце представлены методики работы с обоими типами запросов.