Método de programación informática
El SQL embebido es un método que combina la potencia de cálculo de un lenguaje de programación y las capacidades de manipulación de bases de datos de SQL . Las sentencias SQL embebidas son sentencias SQL escritas en línea con el código fuente del programa , del lenguaje anfitrión. Las sentencias SQL embebidas son analizadas por un preprocesador SQL embebido y reemplazadas por llamadas del lenguaje anfitrión a una biblioteca de código . La salida del preprocesador es luego compilada por el compilador anfitrión . Esto permite a los programadores incrustar sentencias SQL en programas escritos en cualquier número de lenguajes como C/C++ , COBOL y Fortran . Esto difiere de los lenguajes de programación derivados de SQL que no pasan por preprocesadores discretos, como PL/SQL y T-SQL .
El comité de estándares SQL definió el estándar SQL embebido en dos pasos: se definió un formalismo llamado lenguaje de módulos , luego el estándar SQL embebido se derivó de lenguaje de módulos. [1] El estándar SQL define la incrustación de SQL como SQL embebido y el lenguaje en el que se incrustan las consultas SQL se conoce como lenguaje host . Un lenguaje host popular es C. El lenguaje host C y SQL embebido, por ejemplo, se llama Pro*C en los sistemas de administración de bases de datos Oracle y Sybase , ESQL/C en Informix y ECPG en el sistema de administración de bases de datos PostgreSQL . SQL también puede estar embebido en lenguajes como PHP, etc.
El estándar SQL SQL:2023 está disponible mediante compra y contiene el capítulo 21 SQL integrado y sus reglas de sintaxis. [2]
Sistemas de bases de datos que admiten SQL integrado
Base de altibajos
- C/C++
- APRE es un precompilador SQL integrado proporcionado por Altibase Corp. para su servidor DBMS.
IBM Db2
IBM Db2 para Linux, UNIX y Windows admite SQL integrado para C, C++, Java, COBOL, FORTRAN y REXX, aunque la compatibilidad con FORTRAN y REXX ha quedado obsoleta. [3]
IBM Informix
IBM Informix versión 14.10 para Linux, Unix y Windows admite SQL integrado para C. [4] }
Servidor Microsoft SQL
- C/C++
- El SQL integrado para C ha quedado obsoleto a partir de Microsoft SQL Server 2008, aunque versiones anteriores del producto lo admiten. [5]
SQL Mimer
Mimer SQL para Linux, macOS , OpenVMS y Windows admiten SQL integrado. [6]
- C/C++
- Embedded SQL para C/C++ es compatible con Linux, macOS, OpenVMS y Windows.
- COBOL
- OpenVMS admite SQL integrado para COBOL.
- Fortran
- OpenVMS admite SQL integrado para Fortran.
Base de datos Oracle
- Ada
- Oracle dejó de ofrecer soporte para Pro*Ada en la versión 7.3. A partir de Oracle8, Pro*Ada fue reemplazado por SQL*Module, pero parece que no se ha actualizado desde entonces. [7] SQL*Module es un lenguaje de módulos que ofrece un método de programación diferente al SQL integrado. SQL*Module admite el estándar de lenguaje Ada83 para Ada.
- C/C++
- Pro*C se convirtió en Pro*C/C++ con Oracle8. Actualmente, Pro*C/C++ se admite a partir de Oracle Database 11 g .
- COBOL
- Pro*COBOL actualmente es compatible con Oracle Database 11 g .
- Fortran
- Pro*FORTRAN ya no se actualiza a partir de Oracle8, pero Oracle seguirá publicando parches a medida que se informen y corrijan errores. [8]
- Pascal
- Pro*Pascal no se lanzó con Oracle8. [8]
- PL/YO
- Pro*PL/I no se publicó con Oracle8. Sin embargo, el Suplemento Pro*PL/I de la Guía de precompiladores de Oracle siguió apareciendo en la Biblioteca de documentación de Oracle hasta la versión 11 g . A partir de la versión 12c, Pro*PL/I se eliminó de la Biblioteca de documentación de Oracle. [8]
PostgreSQL
- C/C++
- ECPG es parte de PostgreSQL desde la versión 6.3.
- COBOL
- Cobol-IT ahora distribuye un precompilador COBOL para PostgreSQL [ cita requerida ]
- Micro Focus proporciona soporte a través de su preprocesador OpenESQL [ cita requerida ]
SAP Sybase
SAP Sybase ASE 15.7 admite SQL integrado para C y COBOL como parte del kit para desarrolladores de software Sybase . [9]
SAP Sybase SQL Anywhere admite SQL integrado para C y C++ como parte del sistema de gestión de bases de datos SQL Anywhere . [10]
SAP Sybase IQ admite SQL integrado para C y C++ como parte del sistema de gestión de bases de datos Sybase IQ . [11]
SQL integrado a través de lenguajes específicos del dominio
- LINQ-to-SQL incorpora un lenguaje similar a SQL en los lenguajes .NET .
- JPA incorpora un lenguaje similar a SQL a través de Criteria API en Java .
- jOOQ incorpora un lenguaje similar a SQL en Java .
Véase también
Referencias
- ^ "El concepto de lenguaje de módulos". Guía del programador de SQL*Module para Ada, versión 8.0, capítulo 1. Introducción a SQL*Module . Oracle Corporation . Consultado el 14 de julio de 2008 .
- ^ "SQL Standard 2023 Chapter 21 Embedded SQL" (Norma SQL 2023 Capítulo 21 SQL integrado). ISO/IEC 9075-2:2023 Tecnología de la información — Lenguajes de bases de datos — SQL — Parte 2: Fundamentos (SQL/Foundation) . ISO . Consultado el 17 de agosto de 2023 .
- ^ "Base de datos DB2 para Linux, UNIX y Windows". Desarrollo de aplicaciones SQL integradas . IBM . Consultado el 10 de abril de 2009 .
- ^ "Informix Dynamic Server". IBM® Informix® ESQL/C . IBM . Consultado el 31 de marzo de 2020 .
- ^ "Características obsoletas del motor de base de datos en SQL Server 2008". Libros en línea de SQL Server 2008 (marzo de 2009) . Microsoft . Consultado el 10 de abril de 2009 .
- ^ "SQL embebido". Manual del programador de Mimer SQL, última versión, SQL embebido . Mimer SQL .
- ^ "Compatibilidad con Ada en la versión 8". Oracle9i Database Migration, versión 2 (9.2), capítulo 5. Compatibilidad e interoperabilidad . Oracle Corporation . Consultado el 14 de julio de 2008 .
- ^ abc "Alternativas de lenguaje". Guía del programador del precompilador Pro*COBOL, versión 8.0, capítulo 1. Introducción . Oracle Corporation . Consultado el 14 de julio de 2008 .
- ^ "EmbeddedSQL". Productos SAP Sybase . SAP Sybase . Consultado el 5 de septiembre de 2012 .
- ^ "SAP Sybase SQL Anywhere". Productos SAP Sybase . SAP Sybase. Archivado desde el original el 2013-05-01 . Consultado el 2013-05-02 .
- ^ "SAP Sybase IQ". Productos SAP Sybase . SAP Sybase. Archivado desde el original el 4 de mayo de 2013. Consultado el 2 de mayo de 2013 .
Enlaces externos
- Introducción a SQL integrado de Pro*C
- SQL integrado con Pro*C
- Guía del programador de SQL*Module para Ada, versión 8.0
- Documentación de PostgreSQL, ECPG
- Documentación de Informix, ESQL/C
- SQL integrado en C, Mimer SQL Developer