Формы использования sql

  • Часть 1
  • | 2
  • | 3

Внедрение SQL-запросов в текст программы предполагает использование операторов как статического SQL, так и динамического SQL (Dynamic SQL -DSQL) [18].

Статический SQL может реализовываться как встроенный SQL(Embedded SQL - ESQL) или модульный SQL. Во встроенном SQL можно использоватьпеременные основного языка программирования. Запросы статического SQL определены уже в момент компиляции программы.

Что касается запросов статического SQL, то какого-либо изменения после их однократного написания не предполагается. Они могут храниться как в файлах, предназначенных для дальнейшего использования, так и в виде хранимых процедур базы данных, однако программисты не получают всей той гибкости, которую предлагает им динамический SQL. Несмотря на наличие большого числа запросов, доступных конечному пользователю, может случиться так, что ни один из этих "законсервированных" запросов не сможет удовлетворить его текущим потребностям.

Динамический SQL (в отличие от статического SQL) позволяет формировать SQL-запросы не на этапе компиляции, а во время выполнения программы. Запросы динамического SQL формируются как текстовые переменные (например, Abon:='SELECT * FROM ABONENT';). Для динамического формирования оператора можно выполнять последовательное объединение строк.

Динамический SQL дает возможность программисту или конечному пользователю создавать операторы во время выполнения приложения и передавать их базе данных, которая после выполнения этих операторов помещает выходные данные в переменные программы. Динамический SQL часто используется инструментальными средствами, предназначенными для построения заранее незапланированных запросов, позволяющих оперативно формировать тот или иной SQL-запрос в зависимости от особых требований, возникших в конкретной ситуации. После настройки SQL-запроса в соответствии с потребностями пользователя он направляется серверу баз данных для проверки на наличие синтаксических ошибок и необходимых для его выполнения привилегий, после чего происходит его компиляция и выполнение.

предыдущаяследующая