| p:abstract
| - Embedded SQL is a method of combining the computing power of a programming language and the database manipulation capabilities of SQL. Embedded SQL statements are SQL statements written inline with the program source code of the host language. The embedded SQL statements are parsed by an embedded SQL preprocessor and replaced by host-language calls to a code 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: C/C++, COBOL and Fortran.
The ANSI SQL standards committee defined the embedded SQL standard in two steps: a formalism called Module Language was defined, then the embedded SQL standard was derived from Module Language. 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. The mixed C and embedded SQL is called Pro*C in Oracle and Sybase database management systems. Other embedded SQL precompilers are Pro*Ada, Pro*COBOL, Pro*FORTRAN, Pro*Pascal, and Pro*PL/I. (en)
- Embedded SQL (abgekürzt: ESQL) ist eine Spracherweiterung von SQL, mit der es möglich ist, SQL-Anweisungen innerhalb einer strukturierten oder objektorientierten Programmiersprache (der Hostsprache, typischerweise C, C++, COBOL, Ada, Pascal o. ä.) auszuführen.
Blöcke mit SQL-Anweisungen und -Deklarationen werden dabei, in bestimmte Embedded-SQL-Schlüsselwörter eingeschlossen, in den Code der Hostsprache eingefügt. Der SQL-Anteil am Quellcode wird entweder von dem Compiler selbst mit übersetzt (so machen es einige COBOL-Compiler) oder ein Precompiler wandelt die SQL-Anweisungen zuvor in normalen Code der Hostsprache um, der dann mit deren Compiler normal übersetzt werden kann. Der umgewandelte Code enthält Aufrufe der Schnittstelle zur Datenbank. Diese Schnittstelle muss als Bibliothek in das fertige Programm gelinkt werden. Die Bibliothek ist abhängig von der verwendeten Datenbank und wird gewöhnlich vom jeweiligen Datenbankhersteller geliefert, soweit dieser Embedded SQL überhaupt unterstützt.
Embedded SQL ist im SQL92-Standard definiert. Programme mit ESQL sollten daher, so lange keine proprietären Eigenschaften des jeweiligen SQL-Dialektes verwendet werden, kompatibel mit Datenbanken verschiedener Hersteller sein, allerdings nur auf Ebene des Quellcodes. Das heißt, dass bei Wechsel des Datenbankfabrikats, manchmal sogar beim Versionsupdate der gleichen Datenbank, der Quellcode durch den ESQL-Precompiler und Compiler neu übersetzt und gegen die aktuelle Bibliothek gelinkt werden muss. Dies unterscheidet Embedded SQL von Konzepten mit ähnlichem Einsatzzweck wie ODBC, wo beim Wechsel der Datenbank (theoretisch) nur ein Treiber ausgewechselt wird und das compilierte Programm weiter verwendet werden kann. Es gibt allerdings mindestens einen COBOL-Compiler, der ESQL-Anweisungen in Aufrufe von ODBC umwandelt.
Der große Vorteil dieses Ansatzes der Datenbankanbindung liegt darin, dass zur Compilezeit die SQL-Syntax und die Typverträglichkeit der Schnittstellenvariablen geprüft werden kann. Auf diesen großen Vorteil verzichtet man gänzlich, wenn man eine rein laufzeitgebundene Architektur (ODBC, ADO, ADO.NET, ...) verwendet.
Die Kommunikation zwischen SQL und dem Anwendungsprogramm erfolgt per Hostvariablen. Werden diese Hostvariablen in einem SQL-Ausdruck benützt, so wird ihnen ein Doppelpunkt voran gestellt.
Beispiel:
EXEC SQL
SELECT vorname, nachname
INTO :vorname, :nachname
FROM mitarbeitertabelle
WHERE pnr = :pnr
;
Vor der Ausführung des SQL-Befehls muss in der umgebenden Programmiersprache die Variable 'pnr' mit einem Wert belegt werden. Nach Ausführung des SQL-Befehls sind die Variablen 'vorname' und 'nachname' mit Werten belegt - sofern überhaupt ein Satz gefunden wurde.
In einer Datenbank-Tabelle können Spalten mit Null-Werten definiert werden. (de)
- 埋め込みSQL(うめこみ- ,英: )とは、C/C++、COBOL、FORTRAN、Pascal、Ada、Java (SQLJ) といった手続き型プログラミングに、リレーショナルデータベース(RDBMS)を操作するためのSQLを組み込む手法であり、プログラマはソースコード内部に埋め込みSQLステートメントを直接記述することができるようになる。「組み込みSQL」とも呼ばれる。
SQL標準規格のSQL86(1986年)において、COBOL、FORTRAN、PL/Iなどへの埋め込みSQL文の仕様、SQL89(1989年)において、C言語への埋め込みSQL文の仕様がそれぞれ策定された。
埋め込みSQLステートメントはコンパイル実行前にSQLプリプロセッサによって前処理される。
Oracleデータベースに対する埋め込みSQLのプリプロセッサとしてPro*C/C++が普及しているが、他に、Pro*COBOL、Pro*FORTRAN、Pro*Pascal、SQL*Module などがある。 (ja)
- Embedded SQL — расширение какого-либо базового языка программирования, позволяющее встраивать (англ. embed) команды языка структурированных запросов SQL непосредственно в текст программы. Прежде чем программа, использующая embedded SQL, будет откомпилирована компилятором базового языка программирования, она должна быть обработана специальным препроцессором. (ru)
|
| rdfs:comment
| - Embedded SQL is a method of combining the computing power of a programming language and the database manipulation capabilities of SQL. Embedded SQL statements are SQL statements written inline with the program source code of the host language. The embedded SQL statements are parsed by an embedded SQL preprocessor and replaced by host-language calls to a code library. The output from the preprocessor is then compiled by the host compiler. (en)
- Embedded SQL (abgekürzt: ESQL) ist eine Spracherweiterung von SQL, mit der es möglich ist, SQL-Anweisungen innerhalb einer strukturierten oder objektorientierten Programmiersprache (der Hostsprache, typischerweise C, C++, COBOL, Ada, Pascal o. ä.) auszuführen. (de)
- 埋め込みSQL(うめこみ- ,英: )とは、C/C++、COBOL、FORTRAN、Pascal、Ada、Java (SQLJ) といった手続き型プログラミングに、リレーショナルデータベース(RDBMS)を操作するためのSQLを組み込む手法であり、プログラマはソースコード内部に埋め込みSQLステートメントを直接記述することができるようになる。「組み込みSQL」とも呼ばれる。 (ja)
- Embedded SQL — расширение какого-либо базового языка программирования, позволяющее встраивать (англ. embed) команды языка структурированных запросов SQL непосредственно в текст программы. (ru)
|