4.建立和关闭数据库连接(1)建立数据库连接EXECSQL CONNECT TOtarget[ASconnectionname][USER user-name]target是要连接的数据库服务器常见的服务器标识串,如统概论<dbname>@<hostname>:<port>包含服务器标识的SQL串常量ODEFAULT双活车3An Introduction to Database System
An Introduction to Database System 4. 建立和关闭数据库连接 (1)建立数据库连接 EXEC SQL CONNECT TO target[AS connectionname][USER user-name]; ◼ target是要连接的数据库服务器 ⚫常见的服务器标识串,如 <dbname>@<hostname>:<port> ⚫包含服务器标识的SQL串常量 ⚫ DEFAULT
(续)建立和关闭数据库连接RIconnect-name是可选的连接名,连接名必须是一个有效的标识符1在整个程序内只有一个连接时可以不指定连接名1程序运行过程中可以修改当前连接EXECSQLSETCONNECTION connection-nameDEFAULT;数据库系统AnIntroductiontoDatabaseSystem
An Introduction to Database System 建立和关闭数据库连接(续) ◼ connect-name是可选的连接名,连接名必须是一个 有效的标识符 ◼ 在整个程序内只有一个连接时可以不指定连接名 ◼ 程序运行过程中可以修改当前连接 EXEC SQL SET CONNECTION connection-name |DEFAULT;
(续)建立和关闭数据库连接(2)关闭数据库连接EXECSQLDISCONNECT[connection]中国人数据库系统概论An Introduction to Database System
An Introduction to Database System 建立和关闭数据库连接(续) (2)关闭数据库连接 EXEC SQL DISCONNECT [connection];
5.程序实例*[例8.11依次检查某个系的学生记录,交互式更新某些学生年龄。EXECSQLBEGINDECLARESECTION;/*主变量说明开始*char Deptname[20];char Hsno[9];统概论char Hsname[20];char Hssex[2];int HSage;int NEWAGE;EXECSQLENDDECLARESECTION;*主变量说明结束*longSQLCODE;EXECSQLINCLUDESQLCA;*定义SQL通信区*AnIntroduction to DatabaseSystem
An Introduction to Database System 5. 程序实例 ❖[例8.1] 依次检查某个系的学生记录,交互式更新 某些学生年龄。 EXEC SQL BEGIN DECLARE SECTION; /*主变量说明开始*/ char Deptname[20]; char Hsno[9]; char Hsname[20]; char Hssex[2]; int HSage; int NEWAGE; EXEC SQL END DECLARE SECTION; /*主变量说明结束*/ long SQLCODE; EXEC SQL INCLUDE SQLCA; /*定义SQL通信区*/
(续)程序实例int main(void)/*C语言主程序开始*tint count = O;char yn;/*变量yn代表yes或no*printf("Please choose the department name(CS/MA/IS):")/*为主变量deptname赋值*scanf("%s",deptname);EXECSQLCONNECTTOTEST@localhost:54321USER"SYSTEM""MANAGER";/*连接数据库TEST*|EXECSQLDECLARESXCURSORFOR*定义游标SX*ISELEcTSno,Sname,Ssex,Sage/*SX对应的语句*FROMStudentWHERESDept=:deptname;EXECSQLOPENSX/*打开游标SX,指向查询结果的第一行*AnIntroduction to DatabaseSystem
An Introduction to Database System 程序实例(续) int main(void) /*C语言主程序开始*/ { int count = 0; char yn; /*变量yn代表yes或no*/ printf("Please choose the department name(CS/MA/IS): "); scanf("%s",deptname); /*为主变量deptname赋值*/ EXEC SQL CONNECT TO TEST@localhost:54321 USER "SYSTEM"/"MANAGER"; /*连接数据库TEST*/ EXEC SQL DECLARE SX CURSOR FOR /*定义游标SX*/ SELECT Sno,Sname,Ssex,Sage /*SX对应的语句*/ FROM Student WHERE SDept = :deptname; EXEC SQL OPEN SX; /*打开游标SX,指向查询结果的第一行*/