ЗАКЛЮЧЕНИЕ

 

Подошло к концу наше обсуждение возможностей динамического SQL. Вместе с тем завершаются три главы об использовании SQL в прикладном программировании.

В главе 10 описаны основы подхода, связанного с встроенным SQL. Материал этой главы относится ко всему программированию с помощью SQL и представляет интерес для всех занимающихся прикладным программированием в обстановке системы DB2. В главе 11 также рассматриваются принципы, имеющие отношение ко всем пользователям, обсуждаются концепции управления транзакциями — параллельное исполнение и восстановление, показывается, как эти концепции реализуются в языке SQL. Однако благодаря природе языка SQL пользователю весьма редко приходится беспокоиться об этом в явном виде. В большинстве случаев оказываются достаточными механизмы системы DB2, действующие по умолчанию. В отличие от двух предыдущих данная глава посвящена весьма специальному вопросу — как написать интерактивное приложение в SQL. Для такого приложения необходимы средства динамического SQL, главным образом предложения PREPARE и EXECUTE, а также DESCRIBE при использовании предложения SELECT, которое должно обрабатываться с помощью PREPARE. Примечание. Чтобы отличать другие части языка от динамических средств, рассмотренных в данной главе, их называют иногда статическим SQL.

Конечно можно использовать средства динамического SQL во всех случаях, когда необходима большая варьируемость, чем позволяют обычные статические предложения. Другими словами, было бы не совсем верно утверждать, что интерактивные приложения являются единственной мотивировкой для динамического SQL, хотя такое мнение представляется не очень далеким от истины. Рассмотрим для примера предложение: EXEC SQL SELECT * FROM :TNV; где TNV — это не имя таблицы, а имя переменной включающего языка, значение которой представляет собой имя таблицы. Это предложение не является правильным в обычном статическом SQL. Но для достижения желаемого эффекта можно использовать динамический SQL.

Тот факт, что система DB2 использует по существу один и тот же язык SQL как для интерактивного, так и для программного доступа к базе данных, имеет важное следствие: части базы данных, используемые прикладной программой, могут тестироваться и отлаживаться в интерактивном режиме. Интерактивный интерфейс позволяет создать тестовые таблицы, загрузить в них данные, выполнить над ними используемые в программе предложения SQL в интерактивном варианте, выдать запрос относительно этих таблиц или каталога, чтобы увидеть результат выполнения заданных предложений, и т. д. Иначе говоря, интерактивный интерфейс обеспечивает для программиста удобные возможности отладки. Он привлекателен и по другим причинам: процесс определения данных осуществляется обычно через этот интерфейс, как и процесс предоставления и отмены полномочий; обеспечиваются рудиментарные, но полезные возможности для специальных запросов.