EXEC SQL BEGIN DECLARE SECTION;//主变量说明开始
char deptname[64];
char HSno[64];
char HSname[64];
char HSsex[64];
int HSage;
int NEWAGE;
EXEC SQL END DECLARE SECTION;//主变量说明结束
long SQLCODE;
EXEC SQL INCLUDE sqlca;//定义SQL通信区
int main (void)
{
int count=0;
char yn; //变量yn代表yes或no
printf("Please choose the department name(CS/MA/IS):");
scanf("%s",&deptname);
EXEC SQL CONNECT TO TEST@ localhost:54321 USER "SYSTEM"/"MANAGER";//链接数据库TEST
EXEC SQL DECLARE SX CURSOR FOR//定义游标SX
SELECT Sno,Sname,Ssex,Sage
FROM Student
WHERE SDept=:deptname;
EXEC SQL OPEN SX;
for(;;)
{EXEC SQL FETCH SX INTO:HSno,:HSname,:HSsex,:HSage;
if(sqlca.sqlcode!=0)
break;
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'||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;//断开数据库连接
} }这是按《数据库系统概论》(第四版)第八章上写的,但无法在VC++上运行出来,请求帮我改正、运行出来!谢谢!
char deptname[64];
char HSno[64];
char HSname[64];
char HSsex[64];
int HSage;
int NEWAGE;
EXEC SQL END DECLARE SECTION;//主变量说明结束
long SQLCODE;
EXEC SQL INCLUDE sqlca;//定义SQL通信区
int main (void)
{
int count=0;
char yn; //变量yn代表yes或no
printf("Please choose the department name(CS/MA/IS):");
scanf("%s",&deptname);
EXEC SQL CONNECT TO TEST@ localhost:54321 USER "SYSTEM"/"MANAGER";//链接数据库TEST
EXEC SQL DECLARE SX CURSOR FOR//定义游标SX
SELECT Sno,Sname,Ssex,Sage
FROM Student
WHERE SDept=:deptname;
EXEC SQL OPEN SX;
for(;;)
{EXEC SQL FETCH SX INTO:HSno,:HSname,:HSsex,:HSage;
if(sqlca.sqlcode!=0)
break;
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'||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;//断开数据库连接
} }这是按《数据库系统概论》(第四版)第八章上写的,但无法在VC++上运行出来,请求帮我改正、运行出来!谢谢!
这本书正好在手边!对比了一下,没有什么错误!但是,你要理解这句话的意思...
EXEC SQL CONNECT TO TEST@ localhost:54321 USER "SYSTEM"/"MANAGER";//链接数据库TEST54321 应该设定为 SQL Server 2005 的端口号
"SYSTEM"/"MANAGER" 为数据库登录的用户名
这些一定要设定正确才可以...