Embedded SQL: Difference between revisions

Content deleted Content added
mNo edit summary
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5) (Whoop whoop pull up - 21816
 
(28 intermediate revisions by 18 users not shown)
Line 1:
{{short description|Computer programming method}}
'''Embedded SQL''' is a method of combining the [[computing]] power of a [[programming language]] and the [[database]] [[Data Manipulation Language|manipulation]] capabilities of [[SQL]]. Embedded SQL [[statement (programming)|statements]] are SQL statements written inline with the program [[source code]], of the host language. The embedded SQL statements are [[parsing|parsed]] by an embedded SQL [[preprocessor]] and replaced by host-language [[call site|calls]] to a code [[library (computing)|library]]. The output from the preprocessor is then compiled by the host [[compiler]]. This allows programmers to embed SQL statements in programs written in any number of languages such as [[:Category:C programming language family|C/C++]], [[COBOL]] and [[Fortran]]. This differs from SQL-derived programming languages that don't go through discrete preprocessors, such as [[PL/SQL]] and [[Transact-SQL|T-SQL]].
 
The SQL standards committee defined the embedded SQL standard in two steps: a formalism called '''[[Module SQL|Module Language''']] was defined, then the embedded SQL standard was derived from Module Language.<ref name="modulelang">
{{cite web
|url=http://download.oracle.com/docs/cd/B10501_01/appdev.920/a58231/ch1.htm#2889
Line 8 ⟶ 9:
|publisher=[[Oracle Corporation]]
|accessdate=2008-07-14}}
</ref> The SQL standard defines embedding of SQL as ''embedded SQL'' and the language in which SQL queries are embedded is referred to as the ''host language''. A popular host language is C. Host language C and embedded SQL, for example, is called [[Pro*C]] in [[Oracle Database|Oracle]] and [[Sybase]] database management systems, ESQL/C in [[Informix]], and [[ECPG]] in the [[PostgreSQL]] database management system.
SQL may also be embedded in languages like PHP etc.
 
The SQL standard [[SQL:2023]] is available through purchase and contains chapter '''21 Embedded SQL''' and its syntax rules.<ref>{{cite web
== Systems that support embedded SQL ==
|url=https://www.iso.org/standard/76584.html
|title=SQL Standard 2023 Chapter 21 Embedded SQL
|work=ISO/IEC 9075-2:2023 Information technology — Database languages — SQL — Part 2: Foundation (SQL/Foundation)
|publisher=[[ISO]]
|accessdate=2023-08-17
}}</ref>
 
== SystemsDatabase systems that support embedded SQL ==
 
=== Altibase ===
Line 17 ⟶ 26:
: APRE is an embedded SQL precompiler provided by [[Altibase]] Corp. for its DBMS server.
 
=== IBM DB2Db2 ===
[[IBM DB2Db2]] version 9 for Linux, UNIX and Windows supports embedded SQL for C, C++, Java, COBOL, FORTRAN and REXX although support for FORTRAN and REXX has been deprecated.<ref>{{cite web
|url=http://publib.boulder.ibm.com/infocenter/db2luw/v9/index.jsp?topic=/com.ibm.db2.udb.apdv.embed.doc/doc/c0007014.htm
|title=DB2 Database for Linux, UNIX and Windows
Line 25 ⟶ 34:
|accessdate=2009-04-10
}}</ref>
 
=== IBM Informix ===
[[IBM Informix]] version 14.10 for Linux, Unix, and Windows supports embedded SQL for C. <ref>{{cite web|url=https://www.ibm.com/support/knowledgecenter/SSGU8G_14.1.0/com.ibm.esqlc.doc/esqlc.htm|title=Informix Dynamic Server
|work=IBM® Informix® ESQL/C
|publisher=[[IBM]]
|accessdate=2020-03-31
}}</ref>}
 
=== Microsoft SQL Server ===
Line 37 ⟶ 53:
 
=== Mimer SQL===
[[Mimer SQL]] for Linux, [[macOS]], [[OpenVMS]] and Windows support embedded SQL.<ref>{{cite web
|url=httphttps://developerdocs.mimer.com/documentationMimerSqlManual/html_110latest/Mimer_SQL_Engine_DocSetManuals/indexEmbedded_SQL/Embedded_SQL.htm
|title=Embedded SQL|publisher=[[Mimer SQL]]
|work=Mimer SQL Programmer's Manual versionlatest 11.0version, Embedded SQL}}</ref>
; C/C++
: Embedded SQL for C/C++ is supported on Linux, macOS, OpenVMS and Windows.
; COBOL
: Embedded SQL for COBOL is supported on OpenVMS.
Line 85 ⟶ 101:
: Cobol-IT is now distributing a COBOL precompiler for PostgreSQL{{cn|date=March 2016}}
: Micro Focus provides support via their OpenESQL preprocessor{{cn|date=March 2016}}
 
=== Raima Database Manager (RDM) ===
[[Raima Database Manager]] 14.0 supports embedded SQL for C/C++ and SQL PL.<ref>{{Cite web|url = http://raima.com/wp-content/uploads/RDM-14.0-White-Paper.pdf|title = Raima Technical Whitepaper|last =|first =|date =|website =|publisher =|access-date =}}</ref>{{third-party inline|date=March 2016}}
 
=== SAP Sybase ===
SAP Sybase ASE 15.7 supports embedded SQL for C and COBOL as part of the Software Developer Kit [[Sybase]].<ref>{{cite web
|url=http://www.sybase.com/products/allproductsa-z/softwaredeveloperkit/embeddedsql
|title=EmbeddedSQL
|work=SAP Sybase Products
|publisher=SAP Sybase
|accessdate=2012-09-05
|archive-date=2009-10-23
|archive-url=https://web.archive.org/web/20091023214433/http://www.sybase.com/products/allproductsa-z/softwaredeveloperkit/embeddedsql
|url-status=dead
}}</ref>
 
Line 109 ⟶ 126:
 
SAP Sybase IQ supports embedded SQL for C and C++ as part of the Sybase IQ database management system [[Sybase IQ]].<ref>{{cite web
|url=http://www54.sap.com/pc/tech/database/software/sybase-iq-big-data-management/index.html
|title=SAP Sybase IQ
|work=SAP Sybase Products
|publisher=SAP Sybase
|accessdate=2013-05-02
|archive-url=https://web.archive.org/web/20130504025213/http://www54.sap.com/pc/tech/database/software/sybase-iq-big-data-management/index.html
|archive-date=2013-05-04
|url-status=dead
}}</ref>
 
Line 122 ⟶ 143:
== See also ==
* [[Language binding]]
* [[Module SQL]]
* [[PL/SQL]]
* [[Pro*C/C++]]
Line 134 ⟶ 156:
* [http://infolab.stanford.edu/%7Eullman/fcdb/oracle/or-proc.html Introduction to Pro*C Embedded SQL]
* [http://www.oreillynet.com/pub/a/databases/2006/12/07/embedded-sql-with-pro-c.html Embedded SQL with Pro*C]
* [httphttps://tahitidocs.oracle.com/plscd/db92B10501_01/db92appdev.show_toc?partno=920/a58231/ch2.htm SQL*Module for Ada Programmer's Guide, Release 8.0]
* [https://www.postgresql.org/docs/current/ecpg.html ECPG, PostgreSQL Documentation]
* [https://www.ibm.com/support/knowledgecenter/SSGU8G_14.1.0/com.ibm.esqlc.doc/esqlc.html ESQL/C, Informix Documentation]'
* [https://developer.mimer.com/article/embedded-sql-in-c/ Embedded SQL in C, Mimer SQL Developer]
 
[[Category:SQL]]