姓 名
学 号
20101104203
专 业
计算机科学与技术
班 级
10级师范汉班
联 系
电 话
15248084116
[email protected]
同 组实验者
无
实验室名 称
信息楼403
实 验日 期
2012.12.13
课 程名 称
数据库系统教程
实 验 序 号
01
实 验项 目
使用SQL语句利用游标对基本表进行查找,删除等操作
主 讲教 师
朝力萌
辅 导教 师
朝力萌
指 导教 师
朝力萌
实验心得:
通过本次实验我收获颇多,主要是熟悉了SQL Sever的基本表的创建,还有通过Visual C++的编程以及与数据库的链接来实现对基本表的查找,删除,插入等基本功能。在实验过程中遇到了好多难题,最终通过上网查询和请教他人解决了这些困难,解决问题的过程使我对数据库实验产生了浓厚的兴趣。
学生签名: 刘露 2012 年 12 月 13 日
成绩评定及教师评语:
成绩: 教师签名: 年 月 日
一. 实验目的及要求
1、掌握SELECT语句的基本用法;
2、熟悉用INSERT INTO、DELETE、CREATE TABLE、ALTER TABLE对基本表进行各项操作;
3、熟悉SQL sever服务器的应用,以及熟悉Visual C++ 6.0编译器环境。
二. 实验步骤与结果
1. 环境的初始化
(1) SQL Server2000为其嵌入式SQL提供了一此特殊的接口;默认的安装方式没有安装这此接口;因此,需要把\SQL Server 2000\SQL2000_PER\devtools解压到C:\Program Files\Microsoft SQL Server\80\Tools\DevTools目录下(即文件夹devtools中的所有文件)这里假设SQL Server安装在C盘(或在安装Microsoft SQL Server 2000时选择安装Development Tools,为使用嵌入式SQL语言准备必要的头文件和库文件。)
打开进入\Microsoft Visual Studio\VC98\Bin之后的地址之后,在d:就自动跳到你想去的地方了。
(2) 初始化Visual C++ 6.0编译器环境。在命令行方式下运行文件\Microsoft Visual Studio\VC98\Bin\vcvars32.bat。或(\VC98\Bin)
(3) (在运行上完上一步以后C:回到c盘下,输入解压那个,也就是下一步,(但是自己应经解压过了,所以你的就直接走到最后那里了))初始化SQL Server的预编译环境。在命令行方式下运行文件:\devtools\samples\esqlc\setenv.bat。(需要先解压unzip_esqlc.exe)
2. VC6.0 环境的设计
a打开vc6.0
b 2Tools->options->directories->Include Files:添加 C:\Program Files\Microsoft SQL Server\80\Tools\DevTools\include。将SQL server自带的用于数据库开发的头文件包含到工程环境中。
c Tools->options->directories->Lib Files:添加C:\Program Files\Microsoft SQL Server\80\Tools\DevTools\x861ib。将开发用到的包含到工程中。
d 要在编译之前做的:project->Settings->Link->Object/Library Modules,添加库文件:SQLakw32.lib Caw32.lib。这两个文件之间用空格分开
3. 预处理文件的生成步骤:
a . 再在vc下建一个空白文件,把相应代码打上,另存为到\Microsoft SQL Server\80\Tools\Binn下,在把扩张名改成.sqc。
b 然后去SQLServer去修改密码,去SQL server打开服务器,再去企业管理器里改密码,将密码设置成123.密码修改完成以后,然后在D:\Program Files\Microsoft SQL Server\MSSQL\Data下导入自己的数据库。
c将数据库导入之后,再去程序打开“运行”, 在C:\Program Files\Microsoft SQL Server\80\Tools\Binn 下把nsqlprep demo(这是自己文件的名).sqc /SQLACCESS /DB Mydatabase(这是电脑数据库D+电脑号).pubs /PASS sa.123,则生成一个.c的文件
d 再在\Microsoft SQL Server\80\Tools\Binn下运行该.c文件(其文件美容即是游标编写的SQL的各种语句代码)。
这是最开始自己建的数据库:
三. 实验代码
#includevoid main()
{
int flag;
EXEC SQL BEGIN DECLARE SECTION;
char fa[40];
char fb[40];
char fc[40];
char fd[40];
char fe[40];
char ff[40];
char fg[40];
char fh[40];
char fy[40];
short int raise;
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO A06.School
USER sa.123;
printf("输入操作:\n1--查找: \n2--插入:\n3--删除:\n4--修改:");
scanf("%d",&flag);
if(flag==1)
{
flag = 0;
printf("查找---输入性别: ");
scanf("%s",fa);
EXEC SQL SELECT S#,SNAME
INTO :fb,:fc
from S
WHERE SEX = :fa;
EXEC SQL DISCONNECT ALL;
printf("SEC: %s%s \n",fb,fc);
}
if(flag==2)
{
flag = 0;
printf("插*****入__4 :");
scanf("%s%s%s%s",fd,fe,ff,fg);
EXEC SQL INSERT INTO s(S#,SNAME,AGE,SEX)
VALUES(:fd,:fe,:ff,:fg);
printf("插 入 成 功 !");
}
if(flag==3)
{
flag = 0;
printf("输入删除学生姓名: ");
scanf("%s",fh);
EXEC SQL DELETE FROM SC
WHERE S#=(SELECT S#
FROM S
WHERE SNAME=:fh);
printf("删 除 成 功 !");
}
if(flag==4)
{
flag = 0;
printf("输入修改课程名:");
scanf("%s",fy);
printf("输入成绩增加的值:");
scanf("%d",&raise);
EXEC SQL UPDATE SC
SET SCORE = SCORE+:raise
WHERE C# IN
(SELECT C#
FROM C
WHERE CNAME=:fy);
printf("修 改 成 功 !");
}
}
四. 实验结果分析
实验共分四个步骤,分别为查找、修改、插入和删除。查找时只需要输入性别即可输入符合条件的学生,插入时以S#,SNAME,AGE,SEX的形式输入,删除时因为SC里面没有学生的姓名,所以要通过S查询该姓名的学号,修改时输入成绩增加值即可修改成绩。
7
展开阅读全文