Вбудований SQL

Вбудований 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]

Примітки

Література

  • Silberschatz, Abraham; F. Korth, Henry; Sudarshan, S. (2020). Database System Concepts (вид. 7). New York: McGraw-Hill Higher Education. с. 1376. ISBN 978-0078022159.
  • Elmasri, Ramez; B. Navathe, Shamkant (2015). Fundamentals of Database Systems (вид. 7). Pearson. с. 1280. ISBN 978-0133970777.
  • Weinberg, Paul; Groff, James; Oppel, Andrew (2010). SQL: The Complete Reference (вид. 3). The McGraw-Hill Companies. с. 912. ISBN 978-0071592550.

Посилання

Prefix: a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9

Portal di Ensiklopedia Dunia

Kembali kehalaman sebelumnya