русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Вбудований SQL (SQL/89)


Дата добавления: 2015-07-09; просмотров: 814; Нарушение авторских прав


 

Вбудовані оператори SQL, включаючи опис курсору, а також розділи опису виняткових ситуацій і змінних основної програми, повинні братися в дужки EXEC SQL і END EXEC. Опис курсору повинен зустрічатися текстуально раніше будь-якого оператора, що посилається на цей курсор. Всі змінні основної програми, які використовуються у вбудованих операторах SQL, повинні бути описанні в розділі, що передує опису змінних основної програми. При цьому синтаксис опису змінної відповідає синтаксису основної мови програмування, але імені змінної передує двокрапка.

 

 

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

Другий спосіб полягає у використанні так званого вбудованого SQL, коли за допомогою спеціального синтаксису в програму на традиційній мові програмування вбудовуються оператори SQL так, ніби вони є операторами мови програмування. В цьому випадку, з точки зору прикладної програми, оператор SQL виконується "по місцю". Явна параметризація операторів SQL відстуня, але у вбудованих операторах SQL можуть використовуватися імена змінних основної програми, і за рахунок цього забезпечується зв'язок між прикладною програмою і СУБД.

Концептуально ці два засоби еквівалентні. Більш того, в стандарті встановлюються правила породження неявного модуля SQL по програмі з вбудованим SQL. Але в більшості реалізацій оператори SQL, які знаходяться в модулі SQL, і вбудовані оператори SQL обробляються по-різному. Модуль SQL майже завжди компілюється окремо від прикладної програми, в результаті чого породжується набір процедур «зберігання». Тобто коли використовується модуль SQL компіляція операторів SQL проводиться тільки один раз, і після цього відповідні процедури скільки завгодно раз можуть викликатися з прикладної програми.



 

На відміну від цього, для операторів SQL, вбудованих в прикладну програму, компіляція цих операторів зазвичай проводиться кожний раз при їх використанні (більш правильно сказати, при кожному першому використанні оператора при даному запуску прикладної програми).

 

Звичайно, користувачі не зобов'язані знати про ці технічні відмінності в обробці двох видів взаємодії з СУБД. Існують і такі системи, що виробляють одноразову компіляцію вбудованих операторів SQL і зберігають відкомпільований код. Але все-таки краще це зннати (наприклад, при компіляції оператора SQL безпосередньо перед його виконанням ймовірно отримати більш оптимальний план виконання оператора).

Наведемо деякі міркування за і проти кожного з цих двох засобів. При використанні мови модулей текст прикладної програми має менший розмір, взаємодія з СУБД більш локалізована за рахунок наявності явних параметрів виклика процедур. З іншого боку, для розуміння змісту поведінки прикладної програми потрібно одночасне читання двох текстів. Крім того, синтаксис модуля SQL може істотно відрізнятися в різних реалізаціях.

Вбудований SQL дає можливість зробити більш "самомістку" прикладну програму. Є більше підстав розраховувати на простоту переносу такої програми в середовище іншої СУБД, тому що стандарт вбудови більш-менш дотримується. Основним недоліком є деякий PL-подібний вигляд таких програм, незалежно від вибраної основної мови. І звичайно, потрібно враховувати зауваження, про які говорилося в попередніх абзацах.

 

Далі ми коротко опишемо мову модулей і правила вбудови у відповідності із стандартом SQL (ще раз відмітимо, що формально правила вбудови не є частиною стандарту).

 




<== предыдущая лекция | следующая лекция ==>
Зчитування чергового рядка курсору | Виконання (виклик) збереженої процедури


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.146 сек.