(续)程序实例for(; ;)*用循环结构逐条处理结果集中的记录*tEXECSQLFETCHSXINTO:HSno,:Hsname,:HSsex,:HSage;/*推进游标,将当前数据放入主变量*if(SQLCA.SQLCODE!=0)/*SQLCODE!=0,表示操作不成功*break;*利用SQLCA中的状态信息决定何时退出循环*if(count++ == 0)*如果是第一行的话,先打出行头*printf("In%-10s%-20s%-10s%-10sln","Sno""Sname","Ssex","Sage")printf("%-10s%-20s%-10s%-10din",HSno,Hsname,Hssex,HSage);/*打印查询结果*printf(“UPDATEAGE(yln)?");/*询问用户是否要更新该学生的年龄*do(scanf("%c",&yn);)while(yn!='N'&&yn!='n'&&yn!='Y'&&yn!='y);AnIntroduction to DatabaseSystem
An Introduction to Database System 程序实例(续) for ( ; ; ) /*用循环结构逐条处理结果集中的记录*/ { EXEC SQL FETCH SX INTO :HSno,:Hsname,:HSsex,:HSage; /*推进游标,将当前数据放入主变量*/ if (SQLCA.SQLCODE!= 0) /*SQLCODE != 0,表示操作不成功*/ break; /*利用SQLCA中的状态信息决定何时退出循环*/ if(count++ == 0) /*如果是第一行的话,先打出行头*/ printf("\n%-10s %-20s %-10s %-10s\n", "Sno“,"Sname“,"Ssex", "Sage"); printf("%-10s %-20s %-10s %-10d\n“, HSno,Hsname,Hssex,HSage); /*打印查询结果*/ printf(“UPDATE AGE(y/n)?”); /*询问用户是否要更新该学生的年龄*/ do{scanf("%c",&yn);} while(yn != 'N' && yn != 'n' && yn != 'Y' && yn != 'y');
(续)程序实例if (yn =='y' Il yn =- "Y")/*如果选择更新操作*printf("INPUT NEW AGE:");scanf("%d",&NEWAGE);*用户输入新年龄到主变量中*EXECSQLUPDATEStudent/*嵌入式SQL更新语句*SET Sage =:NEWAGEWHERECURRENTOFSX;7*对当前游标指向的学生年龄进行更新*人EXECSQLCLOSESX;*关闭游标SX,不再和查询结果对应*EXECSQLCOMMITWORK;*提交更新*EXECSQLDISCONNECTTEST:/*断开数据库连接*人An Introduction to DatabaseSystem
An Introduction to Database System 程序实例(续) if (yn == 'y' || yn == 'Y') /*如果选择更新操作*/ { printf("INPUT NEW AGE:"); scanf("%d",&NEWAGE); /*用户输入新年龄到主变量中*/ EXEC SQL UPDATE Student /*嵌入式SQL更新语句*/ SET Sage = :NEWAGE WHERE CURRENT OF SX; } /*对当前游标指向的学生年龄进行更新*/ } EXEC SQL CLOSE SX; /*关闭游标SX,不再和查询结果对应*/ EXEC SQL COMMIT WORK; /*提交更新*/ EXEC SQL DISCONNECT TEST; /*断开数据库连接*/ }
8.1嵌入式SQL8.1.1嵌入式SQL的处理过程8.1.2嵌入式SQL语句与主语言之间的通信8.1.3不用游标的SQL语句数据库系统概论8.1.4使用游标的SQL语句8.1.5动态SQLAnIntroduction toDatabase System
An Introduction to Database System 8.1 嵌入式SQL 8.1.1 嵌入式SQL的处理过程 8.1.2 嵌入式SQL语句与主语言之间的通信 8.1.3 不用游标的SQL语句 8.1.4 使用游标的SQL语句 8.1.5 动态SQL
8.1.3不用游标的SQL语句*不用游标的SQL语句的种类民大说明性语句数据定义语句数据控制语句光锯论查询结果为单记录的SELECT语非CURRENT形式的增删改语句-An Introduction to Database System
An Introduction to Database System 8.1.3 不用游标的SQL语句 ❖不用游标的SQL语句的种类 ◼ 说明性语句 ◼ 数据定义语句 ◼ 数据控制语句 ◼ 查询结果为单记录的SELECT语句 ◼ 非CURRENT形式的增删改语句
J(续)不用游标的SQL语句1.查询结果为单记录的SELECT语句2.非CURRENT形式的增删改语句中国人数据库系统概论An Introduction to Database System
An Introduction to Database System 不用游标的SQL语句(续) 1. 查询结果为单记录的SELECT语句 2. 非CURRENT形式的增删改语句