SQL的嵌入式编程
我想用SQL的嵌入式编程解决如下问题:
显示要查询的同学的选课信息,并打印出。输入的是同学的学号。
现在有三个关系:
Student(snum(key),sname);
Course(cnum(key),cname,credit);
Student_Course(snum,cnum);
SQL的查询语句如下
select cnum ,cname,credit
from Course
where cnum in
(
select cnum
from Student_Course
where snum=:snum
);
SQL的c嵌入式编程如下:
#include<stdio.h>
#include<stdlib.h>
#include<sql.h>
void main()
{
EXEC SQL INCLUDE SQLSA;
EXEC SQL BEIGN DECLARE SECTION;//定义主变量
char snum(8);
char sname(10);
char cnum(2);
char cname(20);
int credit;
EXEC SQL END DECLARE SECTION;
printf("plese input the student number");//输入要查询 的同学的学号
scanf("%s",snum);
EXEC SQL DECLARE cur_output_message COURSOR FOR//定义游标
select cnum ,cname,credit
from Course
where cnum in
(
select cnum
from Student_Course
where snum=:snum
);
EXEC SQL OPEN cur_output_message ;//打开游标
while(1)
{
EXEC SQL FETCH cur_output_message INTO :cnum,:cname,:credit;//推进游标提取每条记录
if(sql.sqlcode!=0)
break;
printf("%s %s %d\n",cnum,cname,credit)//输出信息
}
EXEC SQL CLOSE cur_output_message;//关闭游标
}
由于本人对嵌入式编程不是很懂,又找不到这类书,上面程序编译没有通过,我也不知道原因。请老师帮忙!!
---------------------------------