Вбудований 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] Примітки
Література
Посилання |
Portal di Ensiklopedia Dunia