6.6.6 嵌入式SQL

文章目录

2个核心问题

SQL语句嵌入高级语言需要解决的2个核心问题是:如何识别嵌入语句?如何让主语言(比如C,C++语言)和SQL通信?

识别SQL语句

为了识别主语言中嵌入的SQL语句,会在SQL语句前加EXEC SQL,结尾添加什么,与SQL嵌入的主语言有关。如果嵌入PL/1或者C语言,结尾用';'。如果嵌入COBOL语言,结尾用END-EXEC。示例中是在C语言中嵌入SQL。

主语言和SQL通信

主语言与SQL通信有3种方式

  1. SQL通信区:向主语言传递SQL语句执行状态信息,使主语言根据此信息控制程序流程。
  2. 主变量:也叫共享变量,主语言通过主变量向SQL提供参数,主变量前加':',用于和SQL的属性名区分。如例子中的given_sno, Mname, Mage, Msex都是主变量。
  3. 游标:由于SQL语言是面向集合的,SQL的一条语句就会产生多条记录,而主语言是面向记录的,一组主变量只能存放一条记录。通过游标指针,可以决定获取哪条记录。

完整导图

相关推荐
京师20万禁军教头4 分钟前
29面向对象(中级)-继承
java
disgare12 分钟前
SpringBoot 请求调用时关于高可用机制选型和落地
java·spring boot·后端
CodeMartain19 分钟前
@SpringBootApplication 到底是什么呢?
java·spring boot·intellij-idea
星秀日22 分钟前
大学生开发社区项目-CLXHXH-登录功能
java
兩尛29 分钟前
struct,union,Class,bitfield各自的作用和区别
java·开发语言
算.子29 分钟前
【Spring AI 实战】八、完整 RAG 问答实战:检索 + 重排序 + 生成全链路
java·人工智能·spring
wuminyu36 分钟前
专家视角看 Java 字节码与Class 文件格式
java·linux·c语言·jvm·c++
Gauss松鼠会40 分钟前
【openGauss】openGauss 磁盘引擎之 ustore
java·服务器·开发语言·前端·数据库·经验分享·gaussdb
lee_curry1 小时前
线程中断,等待,唤醒与ThreadLocal
java·线程·juc·threadlocal·中断
风兮雨露1 小时前
Windows 部署Redis免安装版以及客户端
数据库·windows·redis