连接到
SAMPLE
数据库,查询
LASTNAME
为
JOHNSON
的
FIRSTNAME
信息。
#include
#include
#include
#include
"util.h"
#include
EXEC
SQL
INCLUDE
SQLCA;
(1)
main()
{
EXEC
SQL
BEGIN
DECLARE
SECTION;
(2)
char
firstname[13];
char
userid[9];
char
passwd[19];
EXEC
SQL
END
DECLARE
SECTION;
EXEC
SQL
CONNECT
TO
sample;
(3)
EXEC
SQL
SELECT
FIRSTNME
INTO
:firstname
(4)
FROM
employee
WHERE
LASTNAME
=
'JOHNSON';(4)
printf(
"First
name
=
%s\n",
firstname
);
EXEC
SQL
CONNECT
RESET;
(5)
return
0;
}
上面是一个简单的静态嵌入
SQL
语句的应用程序。它包括了嵌入
SQL
的主要
部分:
(1)中的
include
SQLCA
语句定义并描述了
SQLCA
的结构。SQLCA
用于
应用程序和数据库之间的通讯,其中的
SQLCODE
返回
SQL
语句执行后的结果状
态。
(2)
在
BEGIN
DECLARE
SECTION
和
END
DECLARE
SECTION
之间
定义了宿主变量。
宿主变量可被
SQL
语句引用,
也可以被
C
语言语句引用。
它用
于将程序中的数据通过
SQL
语句传给数据库管理器,或从数
据库管理器接收查
询的结果。在
SQL
语句中,主变量前均有“:”标志以示区别。
(3)
在每次访问数据库之前必须做
CONNECT
操作,
以连接到某一个数据库上。
这时,应该保证数据库实例已经启动。
(4)是一条选择语句。它将表
employee
中的
LASTNAME
为“JOHNSON”的行
数据的
FIRSTNAME
查出,并将它放在
firstname
变量中。该语句返回一个结果。
可以通过游标返回多个结果。当然,也可以包含
update、insert
和
delete
语
句。
(5)最后断开数据库的连接。
从上例看出,
每条嵌入式
SQL
语句都用
EXEC
SQL
开始,
表明它是一条
SQL
语句。
这也是告诉预编译器在
EXEC
SQL
和“;
”之间是嵌入
SQL
语句。
如果
一条嵌入式
SQL
语句占用多行,在
C
程序中可以用续行符“\”。