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的一条语句就会产生多条记录,而主语言是面向记录的,一组主变量只能存放一条记录。通过游标指针,可以决定获取哪条记录。

完整导图

相关推荐
学到头秃的suhian11 小时前
Maven
java·maven
小坏讲微服务11 小时前
Docker-compose 搭建Maven私服部署
java·spring boot·后端·docker·微服务·容器·maven
chxii11 小时前
Maven 详解(下)
java·maven
inferno11 小时前
Maven基础(二)
java·开发语言·maven
杨武博11 小时前
关于maven中pom依赖冲突问题记录
java·maven
陈果然DeepVersion13 小时前
Java大厂面试真题:Spring Boot+Kafka+AI智能客服场景全流程解析(十)
java·spring boot·ai·kafka·面试题·向量数据库·rag
但要及时清醒13 小时前
ArrayList和LinkedList
java·开发语言
一叶飘零_sweeeet13 小时前
从测试小白到高手:JUnit 5 核心注解 @BeforeEach 与 @AfterEach 的实战指南
java·junit
kali-Myon14 小时前
NewStarCTF2025-Week4-Web
sql·安全·web安全·php·ctf·ssti·ssrf