连接到 SAMPLE 数据库,查询 LASTNAME 为 JOHNSON 的 FIRSTNAME
信息。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "util.h"
#include <sqlca.h>
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 程序中可
“
以用续行符 \”
。
c 语言用 vc 连接 sql server 2000