اسکیوال تعبیه شده
SQL تعبیه شده یا Embedded SQL راهی برای ترکیب توان رایانشی زبان برنامه نویسی و قابلیت های پایگاه داده SQL است. عبارت های SQL تعبیه شده خطوط SQLی هستند که درون کد منبع برنامه به زبان میزبان نوشته شده اند. خطوط کد توسط پیش پردازنده SQL تعبیه شده تجزیه و با کد فراخوانی از کتابخانه زبان میزبان جایگزین می شوند. سپس خروجی پیش پردازنده با کامپایلر زبان میزبان کامپایل می شود. اینگونه، برنامه نویس ها می توانند دستور های SQL را در هر زبانی مثل C/C++ ، COBOL و Fortran تعبیه کنند. این روش با زبان های برگرفته از SQL مثل PL/SQL و T-SQL که از پیش پردازنده های جدا استفاده نمی کنند، فرق دارد.
کمیته استانداردهای SQL، استاندارد SQL تعبیه شده را در دو مرحله تعریف کرد: یک صورتبندی به نام زبان ماژول تعریف شد، سپس استاندارد SQL جاسازیشده از زبان ماژول مشتق شد. استاندارد SQL، تعبیه SQL را به عنوان SQL تعبیه شده تعریف میکند و زبانی که در آن کوئری های SQL تعبیه میشوند به عنوان زبان میزبان شناخته میشود. C یک زبان میزبان محبوب است. به عنوان مثال زبان C و SQL تعبیه شده در سیستمهای مدیریت پایگاه داده Oracle و Sybase به نام Pro*C، در Informix به نام ESQL/C و در سیستم مدیریت پایگاه داده PostgreSQL به نام ECPG نامیده میشود. SQL ممکن است در زبانهایی مانند PHP نیز تعبیه شود.
استاندارد SQL:2023 با خرید قابل دسترس است و شامل فصل ۲۱ SQL تعبیه شده و نحوه استفاده از آن میباشد.[۱]
سیستمهای پایگاه داده با پشتیبانی از SQL تعبیه شده
[ویرایش]Altibase
[ویرایش]- C/C++
- APRE یک پیش کامپایلر SQL تعبیه شده برای سرورهای DBMS شرکت Altibase از همین شرکت است.
IBM Db2
[ویرایش]IBM Db2 برای لینوکس، یونیکس و ویندوز از SQL تعبیه شده برای C، C++، Java، COBOL، FORTRAN و REXX پشتیبانی می کند. اگرچه پشتیبانی از REXX و FORTRAN متوقف شده.[۲]
IBM Informix
[ویرایش]IBM Informix ورژن 14.10 برای لینوکس، یونیکس و ویندوز از SQL تعبیه شده برای C پشتیبانی می کند. [۳]
Microsoft SQL Server
[ویرایش]- C/C++
- SQL تعبیه شده برای C از Microsoft SQL Server 2008 کنار گذاشته شده اگر چه نسخه های اولیه اش از آن پشتیبانی می کردند.[۴]
Mimer SQL
[ویرایش]Mimer SQL برای لینوکس، مک او اس، اُپن ویاماس، و ویندوز از SQL تعبیه شده پشتیبانی می کند.[۵]
- Ada
- پشتیبانی از Pro*Ada به طور رسمی با نسخه 7.3 توسط اوراکل متوقف شد. با عرضه Oracle8، SQL*Module با Pro*Ada جایگزین شد. اگرچه به نظر می رسد از آن زمان دیگر بروزرسانی نشده[۶]. SQL*Module یک زبان ماژولی است که روش برنامه نویسی متفاوت از SQL تعبیه شده ارائه می دهد. SQL*Module از استاندارد زبانی Ada83 برای Ada پشتیبانی می کند.
- C/C++
- Pro*C با Oracle8 تبدیل به Pro*C/C++ شد. این نسخه تاکنون (Oracle Database 11g) پشتیبانی می شود.
- COBOL
- Pro*COBOL در حال حاضر (Oracle Database 11g) پشتیبانی می شود.
- Fortran
- Pro*FORTRAN از Oracle8 دیگر بروزرسانی نمی شود ولی اوراکل نسخه های پشتیبانی برای گزارش ها و خطاهای ارسالی منتشر می کند.[۷]
- PL/I
- Pro*PL/I به همراه Oracle8 عرضه نشد. اگرچه بخش راهنمای Pro*PL/I در راهنمای اوراکل تا نسخه 11g وجود داشت.[۷]
- C/C++
- ECPG از نسخه 6.3 بخشی از پستگرسکیوال است.
SAP Sybase
[ویرایش]SAP Sybase ASE 15.7 از SQL تعبیه شده برای C و COBOL به عنوان بخشی از کیت توسعه نرم افزار Sybase پشتیبانی می کند.[۸]
SAP Sybase SQL Anywhere از SQL تعبیه شده برای C و C++ به عنوان بخشی از سیستم مدیریت دیتابیس SQL Anywhere پشتیبانی می کند.[۹]
SAP Sybase IQ از SQL تعبیه شده برای C و C++ به عنوان بخشی از سیستم مدیریت دیتابیس Sybase IQ پشتیبانی می کند.[۱۰]
SQL تعبیه شده از طریق زبان های خاص دامنه
[ویرایش]- LINQ-to-SQL یک زبان شبه SQL را درون .NET تعبیه می کند.
- JPA یک زبان شبه SQL را از طریق Criteria API درون جاوا تعبیه می کند.
- JOOQ یک زبان شبه SQL را درون جاوا تعبیه می کند.
منابع
[ویرایش]- ↑ "SQL Standard 2023 Chapter 21 Embedded SQL". ISO/IEC 9075-2:2023 Information technology — Database languages — SQL — Part 2: Foundation (SQL/Foundation). ISO. Retrieved 2023-08-17.
- ↑ "DB2 Database for Linux, UNIX and Windows". Developing Embedded SQL Applications. IBM. Retrieved 2009-04-10.
- ↑ "Informix Dynamic Server". IBM® Informix® ESQL/C. IBM. Retrieved 2020-03-31.
- ↑ "Deprecated Database Engine Features in SQL Server 2008". SQL Server 2008 Books Online (March 2009). Microsoft. Retrieved 2009-04-10.
- ↑ "Embedded SQL". Mimer SQL Programmer's Manual latest version, Embedded SQL. Mimer SQL.
- ↑ "Ada Support in Version 8". Oracle9i Database Migration, Release 2 (9.2), Chapter 5. Compatibility and Interoperability. Oracle Corporation. Retrieved 2008-07-14.
- ↑ ۷٫۰ ۷٫۱ ۷٫۲ "Language Alternatives". Pro*COBOL Precompiler Programmer's Guide, Release 8.0, Chapter 1. Introduction. Oracle Corporation. Retrieved 2008-07-14.
- ↑ "EmbeddedSQL". SAP Sybase Products. SAP Sybase. Archived from the original on 23 اكتبر 2009. Retrieved 2012-09-05.
{{cite web}}
: Check date values in:|archive-date=
(help) - ↑ "SAP Sybase SQL Anywhere". SAP Sybase Products. SAP Sybase. Archived from the original on 2013-05-01. Retrieved 2013-05-02.
- ↑ "SAP Sybase IQ". SAP Sybase Products. SAP Sybase. Archived from the original on 2013-05-04. Retrieved 2013-05-02.