图4-12-1:嵌入式SQL的处理过程
��在宿主语言中,一个典型的嵌入式SQL的查询过程如下所示:
⑴定义游标:EXEC SQL
������declare c cursor for
������select customer-name from customer
������END-SQL
⑵打开游标:EXEC SQL open c END-SQL
⑶取 数 据:EXEC SQL fetch c into :v END-SQL
⑷关闭游标:EXEC SQL close c END-SQL
��下面是一段带有嵌入式SQL的C程序:
………
………
EXEC SQL INCLUDE SQLCA;..................⑴定义SQL通信区
EXEC SQL BEGIN DECLARE SECTION;..........⑵主变量说明开始
���CHAR Sno(5);
���CHAR Cno(3);
���INT Grade;
EXEC SQL END DECLARE SECTION;............主变量说明结束
main()
{
�EXEC SQL DECLARE C1 CURSOR FOR........⑶游标操作(定义游标)
��SELECT Sno, Cno, Grade
��FROM SC; ��������/*从表中查询Sno, Cno, Grade*/
�EXEC SQL OPEN C1;.....................⑷游标操作(打开游标)
�for(; ;)
��{
���EXEC SQL FETCH CI INTO :Sno, :Cno, :Grade;
��������������......⑸游标操作(推进游标指针
������������������并将当前数据放入主变量)
����if (sqlca.sqlcode <> SUCCESS)
��������������......⑹利用SQLCA中的状态信息决
������������������定何时退出循环
����break;
����print("Sno: %s, Cno: %s, Grade: %d\n", Sno, Cno, Grade);
�����������������/*打印查询结果*/
��}
�EXEC SQL CLOSE C1;..............⑺游标操作(关闭游标)}