Топ питань
Часова шкала
Чат
Перспективи
Вбудований SQL
З Вікіпедії, вільної енциклопедії
Remove ads
Вбудований SQL (англ. Embedded SQL) — це розширення мови програмування, яке дозволяє вбудовувати SQL-інструкції безпосередньо у початковий код програми, написаній цією мовою. Зазвичай код із вбудованими SQL-інструкціями перед компіляцією обробляється спеціальним препроцесором.
Реалізація
Узагальнити
Перспектива
У стандарті SQL мова програмування, в яку вбудовуються SQL-запити, називається хост-мовою (англ. host language). Програма, яка написана хост-мовою та містить SQL-інструкції, зазвичай перед компіляцією має обробитися препроцесором, який як правило постачається виробником відповідної бази даних. Цей препроцесор замінює SQL-інструкції на директиви та команди хост-мови. Ці команди містять функції зі спеціальної бібліотеки, які дозволяють отримати доступ до бази даних.[1]
Кожна вбудована SQL-інструкція має починатися з ключових слів EXEC SQL, а її закінчення залежить від конкретної хост-мови. Наприклад, для C/C++ вона матиме такий вигляд:[2][3]
EXEC SQL <sql-statement>;
Щоб використовувати змінні хост-мови у вбудованій SQL-інструкції перед їх назвами у цій інструкції потрібно ставити двокрапку. Згідно зі стандартом SQL, щоб препроцесор міг зрозуміти, що певні змінні хост-мови можуть використовуватися у таких інструкціях, потрібно їх оголошувати між такими двома інструкціями вбудованого SQL: BEGIN DECLARE SECTION та END DECLARE SECTION. Однак існують препроцесори, які цього не вимагають, а можуть обробляти всі змінні у поданому початковому коді.[4][5]
Передача значення NULL з вбудованої інструкції у змінну хост-мови та навпаки можлива завдяки змінної-індикатору типу integer, яка у SQL-інструкції розміщується після базової змінної. Якщо її значення від'ємне, то базова змінна містить NULL; якщо вона дорівнює нулю, то базова змінна містить змістовне значення, яке можна використовувати у програмі; якщо вона має додатне значення, то це свідчить про те, що при передачі значення базової змінної з нею відбулася певна деформація.[6]
Для перевірки статусу виконання вбудованої SQL-інструкції можна використовувати спеціальну змінну SQLSTATE (у деяких програмах також може зустрічатися змінна SQLCODE, однак вона визнана застарілою). У разі виникнення помилки виконання додаткову інформацію про неї можна отримати за допомогою інструкції GET DIAGNOSTICS.[7][8]
Якщо на момент створення програми невідомо, які саме змінні потрібні у SQL-запиті, то використовують спеціальну структуру sqlda або область дескриптора (англ. descriptor area).[9]
Remove ads
Примітки
Література
Посилання
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads