Мегаобучалка Главная | О нас | Обратная связь


Применение встроенного SQL. Использование SQLJ.



2019-07-03 274 Обсуждений (0)
Применение встроенного SQL. Использование SQLJ. 0.00 из 5.00 0 оценок




Теперь рассмотрим более подробно синтаксис языка встроенного SQL.

Фактически, чтобы приложение могло обращаться к базе данных, существуют четыре основных варианта:

· встраивание в код некоторого языка программирования SQL-операторов (статический SQL);

· формирование в процессе выполнения программы на некотором языке программирования кода SQL-операторов и дальнейшего их выполнения (динамический SQL);

· вызов из программ, написанных на других языках программирования, SQL-модулей, которые представляют собой код на языке SQL;

· использование API (Application Programming Interface), позволяющего реализовывать работу с базой данных через предоставляемый набор функций. API может быть целевым, предоставленным производителем коммерческой СУБД для работы именно с этой базой данных, или межплатформенным, реализующим унифицированные средства доступа к СУБД различных производителей. К такому API относятся ODBC (Open DataBase Connectivity) и SQL/CLI (SQL Call Level Interface).

Основная программа

Основной программой, или HOST-программой, называется программа, в которую встраиваются SQL-операторы.

Встраиваемый SQL-оператор указывается после фразы EXEC SQL.

Стандартом SQL-92 предусмотрена возможность встраивания SQL-операторов в следующие языки программирования: C, Pascal, Java (SQLJ), Ada, Cobol, Fortran, PL/1, M.

На следующей схеме изображен процесс выполнения программы, содержащей операторы встроенного SQL.


Рис. 9.1. Процесс выполнения программы, содержащей операторы встроенного SQL.

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

Таким образом, выполнение SQL-оператора было последовательно заменено на вызов внешней процедуры, которая затем была связана с библиотекой СУБД. Поэтому на этапе выполнения библиотечные вызовы будут передаваться непосредственно СУБД.

При выполнении программы со встроенным SQL могут быть использованы привилегии как выполняющего, так и владеющего пользователя (того, кто создал выполнимый файл). В современных коммерческих СУБД, как правило, относительно хранимых в базе данных модулей, существует возможность назначения привилегии EXECUTE таким образом, чтобы при выполнении модуля использовались привилегии его владельца.

Переменные во встроенном SQL

Во встроенном SQL можно использовать переменные основного языка программирования. Они применяются:

· в выражениях;

· как INTO-переменные ;

· как переменные связи (bind-переменные) ;

· как индикаторные переменные.

При указании переменной основного языка программирования в коде SQL-оператора перед этой переменной следует вставлять символ двоеточия.

Перед тем как использовать такую переменную, она должна быть объявлена в разделе объявления SQL-переменных. Объявление SQL-переменных указывается между парой операторов EXEC SQL BEGIN DECLARE SECTION; и EXEC SQL END DECLARE SECTION;.

В основной программе может быть произвольное число разделов с объявляемыми переменными, но они могут быть указаны только в тех местах, в которых синтаксис основного языка допускает выполнять объявление переменных. Внутри операторов EXEC SQL BEGIN DECLARE SECTION и EXEC SQL END DECLARE SECTION синтаксис объявления переменных также соответствует языку программирования, в который встраиваются SQL-операторы.

Например:

// Код для объявления переменных на языке С++: EXEC SQL BEGIN DECLARE SECTION; int var1; int var2; char var3[10]; EXEC SQL END DECLARE SECTION;// Код для объявления переменных на языке Pascal: EXEC SQL BEGIN DECLARE SECTION;      var; var1: integer; var2: integer; var3: array (1..10) of char; EXEC SQL END DECLARE SECTION;


2019-07-03 274 Обсуждений (0)
Применение встроенного SQL. Использование SQLJ. 0.00 из 5.00 0 оценок









Обсуждение в статье: Применение встроенного SQL. Использование SQLJ.

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Как вы ведете себя при стрессе?: Вы можете самостоятельно управлять стрессом! Каждый из нас имеет право и возможность уменьшить его воздействие на нас...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (274)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)