Динамический в сравнении со статическим SQL
Динамический в сравнении со статическим SQL
Операторы SQL, включенные в код и обработанные препроцессором, иногда называются статическим SQL. В отличие от них операторы, которые генерируются клиентским приложением и передаются для выполнения на сервер во время работы, называются динамическим SQL (DSQL).
Если вы не пишете код для приложений ESQL, вы используете DSQL. Операторы, выполняемые в утилите интерактивного SQL (isql) или в другой интерактивной утилите, являются операторами DSQL, таким же образом они обрабатываются в клиентских приложениях, которые используют напрямую или опосредованно API (через драйверы доступа к базе данных, такие как ODBC, JDBC или BDE).
В приложениях с Embedded SQL статический SQL позволяет передавать запросы в API Firebird, вместо того, чтобы использовать препроцессор и макросы для формирования структур API. Поскольку весь запрос полностью подготовлен, он может выполняться быстрее динамических операторов, которые передаются серверу, где выполняется их синтаксический анализ и подготовка во время выполнения программы.
Разновидности подмножеств языка
Преднамеренно или случайно существуют некоторые незначительные отличия между подмножествами языка SQL в Firebird.
* Формат некоторых обычных операторов SQL может слегка изменяться в статическом и динамическом вариантах SQL.
* Терминаторы операторов могут изменяться в разных подмножествах языка:
• операторы PSQL и ESQL завершаются точкой с запятой;
• в операторах DSQL, передаваемых через структуры API, терминаторы отсутствуют;
• операторы DSQL, вводимые в интерактивной утилите запросов isql требуют терминаторов, которые могут быть установлены при использовании SET TERM в любой печатаемый символ из первых 127 символьного подмножества ASCII.