2024年最新【SQL】一文详解嵌入式SQL(建议收藏)_嵌入式sql编程(1),2024年最新2024华为物联网嵌入式开发面试真题
EXEC SQL DECLARECURSOR FOR ;
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
源程序
主语言+SQL
预编译
系统
主程序
源系统
主语言
编译系统
目标代码
使用嵌入式SQL的注意事项
把SQL嵌入主语言使用时必须要解决下面几个问题:
区分SQL语句与主语言语句
主要通过在所有的SQL语句前加前缀EXEC SQL来解决。SQL语句一般以分号(;) 作为结束的标志
EXEC SQL <SQL语句>;
数据库工作单元和程序工作单元之间的通信
嵌入式SQL语句中可以使用主语言的程序变量来输入或输出数据。把SQL语句中使用的主语言程序变量简称为主变量或共享变量。
主变量根据其作用的不同,分为输入主变量和输出主变量。输入主变量由应用程序对其赋值,SQL语句引用;输出主变量由SQL语句对其赋值或设置状态信息,返回给应用程序。一个主变量有可能既是输入主变量又是输出主变量。在SQL语句中使用主变量时,需在主变量名前加冒号(:)作为标志,以区别于数据库对象的表名或属性名(字段名)。
SQL语句执行后,系统要反馈给应用程序若干信息,这些信息被送到称为SQL的通信区的SQLCA中。SQLCA用语句EXEC SQL INCLUDE加以定义。SQLCA 是一个数据结构,SQLCA中有一个存放每次执行SQL语句后返回代码的状态指示变量SQLCODE。当SQLCODE为零时,表示SQL语句执行成功,否则返回一个错误代码(负值)或警告信息(正值)。
协调两种不同的处理方式
一般情况下,一个SQL查询一次可以检索多个元组(面向集合),而主语言程序通常是"一次一个元组"(面向记录)处理,为此必须协调这两种不同的处理方式,目前大多使用游标(curor)技术来进行协调,关于游标的定义和使用方法将在稍后阐述。

嵌入式SQL程序的组成
一个带有嵌入式SQL的程序一般包括两大部分:程序首都和程序体 。程序首都是由一些说明性语句组成,而程序体则由一些可执行语句组成。
程序首都
程序首部主要包括的语句有:
①声明段:用于定义主变量。主变量既可以被主语言语句使用,也可以被SQL语句使用,所以也称共享变量。主变量在EXEC SQL BECIN DECLARE SECTION; 和 EXEC SQL END DECLARE SECTION;之间进行说明。
②定义SQL通信区:使用EXEC SQL INCLUDE SQLCA语句定义用于在程序和DBMS之间通信的通信区。SQLCA中包含两个通信变量SQLCODE和SQLSTATE。SQLCODE变量是一个整数变量,当执行了数据库命令之后,DBMS会返回一个SQLCODE值。如果这个值是0,则表明DBMS已成功执行此语句。如果SQLCODE>0,则表明在该查询结果中没有的更多可用的数据(记录)。如果SQLCODE<0,则表明出现了错误。SQLSTATE 是一个带有5 个字符的字符串。如果SQLSTATE的值为00000则表示没有错误或异常;如果是其他值,就表明出现了错误或异常。
③其他说明性语句
程序体
程序体由若干个可执行的SQL语句和主语言语句组成。包括建立和关闭与数据库连接的语句。
建立与一个数据库连接的SQL命令如下:
EXEC SQL CONNECT TO <服务器名> AS <连接名> AUTHORIZATION <用户账户名和口令>;
或者如下:
EXEC SQL CONNECT:<用户名> identified by:<用户口令> using:<数据库服务器路径>;
一般情况下 ,由于一个用户或程序可以访问多个数据库服务器,因此可以建立多个连接,但是任何时刻只能有一个连接是活动的。用户可以使用<连接名>将当前活动的连接转换为另一个连接,命令如下:
EXEC SQL SET CONNECTION <连接名>;
如果不再需要某个连接了,可以使用如下命令终止这个连接:
EXEC SQL DISCONNECT <连接名>;
在嵌入式SQL中使用游标检索多个元组

一般来说,一个SQL查询一次可以检索多个元组,而主语言程序通常是"一次一个元组"处理,可以使用游标协调这两种不同的处理方式。
与游标相关的SQL语句有下列四个:
游标定义语句
EXEC SQL DECLARE <游标名> CURSOR FOR <SELECT语句>;
游标打开语句
EXEC SQL OPEN <游标名>;
游标推进语句
EXEC SQL FETCH <游标名> INTO [<:主变量名>[,<:主变量名>]...];
游标关闭语句
EXEC SQL CLOSE <游标名>;
嵌入式SQL程序实例
下面使用一个案例来对嵌入式SQL进行一个讲解,帮助读者更好地理解嵌入式 SQL的使用,在本案例中使用的宿主语言为C语言。


既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
一个讲解,帮助读者更好地理解嵌入式 SQL的使用,在本案例中使用的宿主语言为C语言。
[外链图片转存中…(img-8j82vvVG-1715643708011)]
[外链图片转存中…(img-CHbFmRQa-1715643708012)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新
更多推荐


所有评论(0)