概述
在嵌入式SQL中进行C语言程序和SQL语句之间的数据传递不需要把数据粘贴到语句中,只需要在SQL语句里写上C语言变量的名称,前缀加一个冒号即可。示例如下:
EXEC SQL INSERT INTO sometable VALUES (:v1, 'foo', :v2);
这个语句引用了两个C语言变量:v1和v2,并且使用一个普通的SQL字串文本,这表明一条SQL语句内并不限制只使用某一种数据。
声明段
要实现嵌入式SQL-C程序和数据库间的数据交互(例如:从SQL-C程序把查询语句中的参数传递给数据库,或者从数据库向嵌入式SQL-C程序传回数据),需要在特殊的标记段里面声明包含此数据的C语言变量,以便预处理器能够识别。
标记段以下面的代码开始:
EXEC SQL BEGIN DECLARE SECTION;
以下面的代码结束:
EXEC SQL END DECLARE SECTION;
在此之间,必须有常规的C语言变量声明,比如:
int x = 4; char foo[16], bar[16];
须知:
- 标记段代码开始和结束之间声明的宿主变量类型必须为当前支持的数据类型,详见表1。
- 可以隐式地创建一个声明段声明变量:EXEC SQL int i = 4。
- 那些不在SQL命令里使用的变量可以在这些特殊的声明段外面声明。
- 结构体或者联合体的定义也必须在DECLARE段中列出。否则预处理器就无法处理这些类型,因为它不知道定义。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




