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

完整导图

相关推荐
振鹏Dong2 分钟前
字符串——面试考察高频算法题
java·数据结构·算法
小小鸭程序员19 分钟前
Spring Boot项目连接MySQL数据库及CRUD操作示例
java·spring boot·python·mysql·spring
forestsea40 分钟前
Java虚拟机面试题:内存管理(中)
java·开发语言
茶本无香44 分钟前
Java异步编程中的CompletableFuture介绍、常见错误及最佳实践
java·future·异步·常见错误
写代码的小王吧1 小时前
【安全】Java幂等性校验解决重复点击(6种实现方式)
java·linux·开发语言·安全·web安全·网络安全·音视频
麓殇⊙1 小时前
springMVC--Controller配置总结
java·spring
字节源流1 小时前
【spring Cloud Netflix】OpenFeign组件
java·spring boot·后端
AntBlack1 小时前
都说 SpringBoot 启动慢 ,你知道慢在哪里吗?
java·spring boot·面试
暮湫2 小时前
javaWeb axios
java·web
qq_340474022 小时前
6.1 python加载win32或者C#的dll的方法
java·python·c#