Inbäddad SQL
Embedded SQL är en metod för att kombinera datorkraften hos ett programmeringsspråk och databashanteringsförmågan hos SQL . Inbäddade SQL- satser är SQL-satser skrivna i linje med programmets källkod för värdspråket. De inbäddade SQL-satserna tolkas av en inbäddad SQL- förprocessor och ersätts av värdspråksanrop till ett kodbibliotek . Utdata från förprocessorn kompileras sedan av värdkompilatorn . Detta gör att programmerare kan bädda in SQL-satser i program skrivna på valfritt antal språk som C/C++ , COBOL och Fortran . Detta skiljer sig från SQL-härledda programmeringsspråk som inte går igenom diskreta förprocessorer, som PL/SQL och T-SQL .
SQL-standardkommittén definierade den inbäddade SQL-standarden i två steg: en formalism som kallas Module Language definierades, sedan härleddes den inbäddade SQL-standarden från Module Language. SQL-standarden definierar inbäddning av SQL som inbäddad SQL och språket som SQL-frågor är inbäddade i kallas värdspråket . Ett populärt värdspråk är C. Värdspråk C och inbäddad SQL kallas till exempel Pro*C i Oracle och Sybase databashanteringssystem, ESQL/C i Informix och ECPG i PostgreSQL databashanteringssystem. SQL kan också vara inbäddad i språk som PHP etc.
System som stöder inbäddad SQL
Altibase
- C/C++
- APRE är en inbäddad SQL-förkompilator som tillhandahålls av Altibase Corp. för sin DBMS-server.
IBM Db2
IBM Db2 för Linux, UNIX och Windows stöder inbäddad SQL för C, C++, Java, COBOL, FORTRAN och REXX även om stöd för FORTRAN och REXX har fasats ut.
IBM Informix
IBM Informix version 14.10 för Linux, Unix och Windows stöder inbäddad SQL för C. }
Microsoft SQL Server
- C/C++
- Embedded SQL för C har fasats ut från och med Microsoft SQL Server 2008 även om tidigare versioner av produkten stöder det.
Mimer SQL
Mimer SQL för Linux, macOS , OpenVMS och Windows stöder inbäddad SQL.
- C/C++
- Embedded SQL för C/C++ stöds på Linux, macOS, OpenVMS och Windows.
- COBOL
- Embedded SQL för COBOL stöds på OpenVMS.
- Fortran
- Embedded SQL för Fortran stöds på OpenVMS.
Oracle Database
- Ada
- Pro*Ada stöddes officiellt av Oracle i version 7.3. Från och med Oracle8 ersattes Pro*Ada av SQL*Module men verkar inte ha uppdaterats sedan dess. SQL*Module är ett modulspråk som erbjuder en annan programmeringsmetod än inbäddad SQL. SQL*Module stöder Ada83-språkstandarden för Ada.
- C/C++
- Pro*C blev Pro*C/C++ med Oracle8. Pro*C/C++ stöds för närvarande från och med Oracle Database 11 g .
- COBOL
- Pro*COBOL stöds för närvarande från och med Oracle Database 11 g .
- Fortran
- Pro*FORTRAN uppdateras inte längre från och med Oracle8 men Oracle kommer att fortsätta att utfärda patch-releaser allt eftersom buggar rapporteras och korrigeras.
- Pascal
- Pro*Pascal släpptes inte med Oracle8.
- PL/I
- Pro*PL/I släpptes inte med Oracle8. Pro *PL/I-tillägget till Oracle Precompilers Guide fortsatte dock att dyka upp i Oracle Documentation Library fram till release 11 g . Från och med release 12c har Pro*PL/I tagits bort från Oracle Documentation Library.
PostgreSQL
- C/C++
- ECPG är en del av PostgreSQL sedan version 6.3.
- COBOL
- Cobol-IT distribuerar nu en COBOL-förkompilator för PostgreSQL [ citat behövs ]
- Micro Focus ger support via deras OpenESQL-förprocessor [ citat behövs ]
SAP Sybase
SAP Sybase ASE 15.7 stöder inbäddad SQL för C och COBOL som en del av Software Developer Kit Sybase .
SAP Sybase SQL Anywhere stöder inbäddad SQL för C och C++ som en del av SQL Anywhere-databashanteringssystemet SQL Anywhere .
SAP Sybase IQ stöder inbäddad SQL för C och C++ som en del av Sybase IQ-databashanteringssystemet Sybase IQ .
Inbäddad SQL genom domänspecifika språk
- LINQ-to-SQL bäddar in ett SQL-liknande språk i .NET-språk .
- JPA bäddar in ett SQL-liknande språk via Criteria API i Java .
- jOOQ bäddar in ett SQL-liknande språk i Java .
Se även
- ^ "Modulspråkkonceptet" . SQL*Module for Ada Programmersguide, Release 8.0, Kapitel 1. Introduktion till SQL*Module . Oracle Corporation . Hämtad 2008-07-14 .
- ^ "DB2-databas för Linux, UNIX och Windows" . Utveckla inbyggda SQL-applikationer . IBM . Hämtad 2009-04-10 .
- ^ "Informix Dynamic Server" . IBM® Informix® ESQL/C . IBM . Hämtad 2020-03-31 .
- ^ "Utfasade databasmotorfunktioner i SQL Server 2008" . SQL Server 2008 Books Online (mars 2009) . Microsoft . Hämtad 2009-04-10 .
- ^ "Inbäddad SQL" . Mimer SQL Programmerarmanual version 11.0, Embedded SQL . Mimer SQL .
- ^ "Ada Support i version 8" . Oracle9i Database Migration, Release 2 (9.2), Kapitel 5. Kompatibilitet och interoperabilitet . Oracle Corporation . Hämtad 2008-07-14 .
- ^ a b c "Språkalternativ" . Pro*COBOL Precompiler Programmer's Guide, Release 8.0, Kapitel 1. Inledning . Oracle Corporation . Hämtad 2008-07-14 .
- ^ "EmbeddedSQL" . SAP Sybase-produkter . SAP Sybase . Hämtad 2012-09-05 .
- ^ "SAP Sybase SQL Anywhere" . SAP Sybase-produkter . SAP Sybase. Arkiverad från originalet 2013-05-01 . Hämtad 2013-05-02 .
- ^ "SAP Sybase IQ" . SAP Sybase-produkter . SAP Sybase. Arkiverad från originalet 2013-05-04 . Hämtad 2013-05-02 .