数据库-嵌入SQL访问接口

嵌入式SQL(Embedded SQL) 是一种将SQL语句直接写入某些高级程序语言,如C、 COBOL、Java、Ada等编程语言的源代码中的方法。借此方法,可使得应用程序拥有了访问数 据以及处理数据的能力。

在SQL86规范中定义了对于COBOL、FORTRAN、PI/L等语言的嵌入式SQL的规范。在SQL89规范中,定义了对于C 语言的嵌入式SQL的规范。一些大型的数据库厂商发布的数据 库产品中,都提供了对于嵌入式SQL的支持,如Oracle、DB2等。

在这一方法中,将SQL文嵌入的目标源码的语言称为宿主语言。

提供对于嵌入式SQL的支持,需要数据库厂商除了提供DBMS之外,还必须提供一些工 具。为了实现对于嵌入式SQL的支持,技术上必须解决以下问题。

(1)宿主语言的编译器不能识别和接受SQL程序,需要解决如何将SQL的宿主语言源代 码编译成可执行码。

(2)宿主语言的应用程序如何与DBMS之间传递数据和消息。

(3)如何把对数据的查询结果逐次赋值给宿主语言程序中的变量,以供其处理。

(4)数据库的数据类型与宿主语言的数据类型有时不完全对应或等价,如何解决必要的数 据类型转换问题。

为了解决上述这些问题,数据库厂商需要提供一个嵌入式SQL的预编译器,把包含有嵌入 式SQL的宿主语言源码转换成纯宿主语言的代码。这样一来,源码即可使用宿主语言对应的编 译器进行编译。通常情况下,经过嵌入式SQL的预编译之后,原有的嵌入式SQL会被转换成 一系列函数调用。因此,数据库厂商还需要提供一系列函数库,以确保链接器能够把代码中的 函数调用与对应的实现链接起来。

嵌入式SQL中除了可以执行标准SQL程序之外,为了对应嵌入的需要,还增加了一些额 外的语法成分。主要包括宿主变量使用声明、数据库访问、事务控制、游标操作的语法等。

相关推荐
dazhong20125 小时前
Spring Boot 项目新增 Module 完整指南
java·spring boot·后端
烧冻鸡翅QAQ5 小时前
redis的数据类型:List
数据库·redis·list
xrkhy5 小时前
SpringBoot之日志处理(logback和AOP记录操作日志)
java·spring boot·logback
搬山境KL攻城狮5 小时前
MacBook logback日志输出到绝对路径
java·intellij-idea·logback
yb0os15 小时前
RPC实战和核心原理学习(一)----基础
java·开发语言·网络·数据结构·学习·计算机·rpc
naumy5 小时前
sqlalchemy
sql
liuyao_xianhui6 小时前
内存管理(C/C++)
java·开发语言·c++
蒋士峰DBA修行之路6 小时前
实验五 静态剪枝
数据库·算法·剪枝
蒋士峰DBA修行之路6 小时前
实验六 动态剪枝
数据库·算法·剪枝
superlls6 小时前
(设计模式)区分建造者、 规格模式(MyBatis Example+Criteria )
java·tomcat