嵌入式SQL语句与主语言之间的通信(续) 例:带有嵌入式SQL的一小段C程序 ■■■■■■■■■ EXEC SQL INCLUDE SQLCA /*(1)定义SQL通信区* EXEC SQL BEGIN DECLARE SECTION *(2)说明主变量* Char title_id(7) cHar title( 81); Int royalty EXEC SQL END DECLARE SECTION An Introduction to Database System
An Introduction to Database System 嵌入式SQL语句与主语言之间的通信(续) 例:带有嵌入式SQL的一小段C程序 ............ EXEC SQL INCLUDE SQLCA; /* (1) 定义SQL通信区 */ EXEC SQL BEGIN DECLARE SECTION; /* (2) 说明主变量 */ CHAR title_id(7); CHAR title(81); INT royalty; EXEC SQL END DECLARE SECTION;
嵌入式SQL语句与主语言之间的通信(续) maino EXEC SQL DECLARE C1 CURSOR FOR SELECT tit_id, tit, roy from titles, /*(3)游标操作(定义游标)* /*从ttes表中查询tid,tt,roy*/ EXEC SQL OPEN C1 /*(4)游标操作(打开游标)* An Introduction to Database System
An Introduction to Database System 嵌入式SQL语句与主语言之间的通信(续) main() { EXEC SQL DECLARE C1 CURSOR FOR SELECT tit_id, tit, roy FROM titles; /* (3) 游标操作(定义游标)*/ /* 从titles表中查询 tit_id, tit, roy */ EXEC SQL OPEN C1; /* (4) 游标操作(打开游标)*/
嵌入式SQL语句与主语言之间的通信(续) for n) EXEC SQL FETCH C1 INTO: title_id, title, royalty /*(5)游标操作(将当前数据放入主变量并推进游标指针)* if (sqlca sqlcode < SUCCESS) *(6)利用 SQLCA中的状态信息决定何时退出循环* break printf(Title ID: %S, royalty: %d": title_id royalty) printf( Title: %s": title) /*打印查询结果*/ EXEC SQL CLOSE C1 /*(刀)游标操作(关闭游标)* An Introduction to Database System
An Introduction to Database System 嵌入式SQL语句与主语言之间的通信(续) for(;;) { EXEC SQL FETCH C1 INTO :title_id, :title, :royalty; /* (5) 游标操作(将当前数据放入主变量并推进游标指针)*/ if (sqlca.sqlcode <> SUCCESS) /* (6) 利用SQLCA中的状态信息决定何时退出循环 */ break; printf("Title ID: %s, Royalty: %d", :title_id, :royalty); printf("Title: %s", :title); /* 打印查询结果 */ } EXEC SQL CLOSE C1; /* (7) 游标操作(关闭游标)*/ }
37嵌入式SQL 3.71嵌入式SQL的一般形式 372嵌入式SQL语句与主语言之间的通信 3.7.3不用游标的SQL语句 374使用游标的SQL语句 375动态SQL简介 An Introduction to Database System
An Introduction to Database System 3.7 嵌 入 式 SQL 3.7.1 嵌入式SQL的一般形式 3.7.2 嵌入式SQL语句与主语言之间的通信 3.7.3 不用游标的SQL语句 3.7.4 使用游标的SQL语句 3.7.5 动态SQL简介
3.73不用游标的SQL语句 不用游标的SQL语句的种类 ■说明性语句 ■数据定义语句 ■数据控制语句 查询结果为单记录的 SELECT语句 非 CURRENT形式的 UPDATE语句 非 CURRENT形式的 DELETE语句 ■ INSERT语句 An Introduction to Database System
An Introduction to Database System 3.7.3 不用游标的SQL语句 ◼ 不用游标的SQL语句的种类 ◼ 说明性语句 ◼ 数据定义语句 ◼ 数据控制语句 ◼ 查询结果为单记录的SELECT语句 ◼ 非CURRENT形式的UPDATE语句 ◼ 非CURRENT形式的DELETE语句 ◼ INSERT语句