




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上实验六通过嵌入式SQL访问数据库仪器设备每位学生一台PC机(标准配制,1G内存),装有SQL Server 2005(或SQL Server 2000);配备一台教师机为上课教师专用;配备一台数字投影,用于实验讲解。分组要求2035人一组试验学时2学时目的要求 熟悉通过嵌入式SQL编程访问数据库。实验内容一、数据库环境配置1、创建xuesheng数据库,建立student表等;2、关闭sql server 2000服务管理器;3、SQL Server2000为其嵌入式SQL提供了一些特殊的接口;默认的安装方式(典型安装)并没有安装这些接口;因此,需要把devtools
2、.rar解压到SQLServer的系统目录下(注意,不是安装目录);本机是把操作系统安装在C盘,则SQLServer的系统目录则是C:Program FilesMicrosoft SQL Server。4、 初始化SQL Server的预编译环境。n 初始化Visual C+ 6.0 编译器环境,运行文件:Microsoft Visual StudioVC98BinVCVARS32.BAT这个过程要在DOS下运行才有效,即找vcvars32.bat的路径,在DOS下运行。具体步骤:初始化SQLServer的预编译环境,运行文件:devtoolssamplesesqlcsetenv.bat。运行
3、方式与vcvars32.bat相同,结果如下:5、将Binn文件夹拷贝到:C:Program FilesMicrosoft SQL ServerMSSQL6、启动服务器;二、VC+6.0编辑器配置(初始化Vc+环境)1.工具>选择>目录>Include Files添加: C:Program FilesMicrosoft SQL Serverdevtoolsinclude 并设为第一项2.选择Library Files 添加:C:Program FilesMicrosoft SQL Serverdevtoolsx86lib并设为第一项 三、写程序,预编译,最后在VC+
4、中编译、执行1、编辑EXEC.sqc文件,保存到:C:Program FilesMicrosoft SQL ServerMSSQLBinn目录EXEC.sqc文件如下:/ EXEC.cpp : Defines the entry point for the console application./#include <stdio.h>#include <stdlib.h>EXEC SQL BEGIN DECLARE SECTION; /*主变量说明开始*/ char deptname64; char HSno64; char
5、HSname64; char HSsex64; int HSage; int NEWAGE; long SQLCODE;EXEC SQL END DECLARE SECTION; /*主变量说明结束*/EXEC SQL INCLUDE sqlca;
6、; /*定义SQL通信区*/*/int main(void) /*C语言主程序开始*/ int count = 0; char yn; &
7、#160; /*变量yn代表yes或no*/ printf("Please choose the department name(CS/MA/IS): "); scanf("%s", deptname);
8、; /*为主变量deptname赋值*/ EXEC SQL CONNECT TO demin USER sa; /*连接数据库TEST*/ EXEC SQL DECLARE SX CURSOR FOR /*定义游标*/ SELECT Sno, Sname, Ssex, Sage
9、160; /*SX对应语句的执行结果*/ FROM Student WHERE SDept = :deptname; EXEC SQL OPEN SX; /*打开游标SX便指向查询结果的第一行*/for ( ; ; )
10、160; /*用循环结构逐条处理结果集中的记录*/ EXEC SQL FETCH SX INTO :HSno, :HSname, :HSsex,:HSage; /*推进游标,将当前数据放入主变量*/if (sqlca->sqlcode != 0) /* sqlcode != 0,表示操作不成功*/ break;
11、0; /*利用SQLCA中的状态信息决定何时退出循环*/ if(count+ = 0) /*如果是第一行的话,先打出行头*/ printf("n%-10s %-20s %-10s %-10sn", "Sno", "Sname", "Ssex", "Sage"); p
12、rintf("%-10s %-20s %-10s %-10dn", HSno, HSname, HSsex, HSage); /*打印查询结果*/ printf("UPDATE AGE(y/n)?"); /*询问用户是否要更新该学生的年龄*/ do
13、160; scanf("%c",&yn); while(yn != 'N' && yn != 'n' && yn != 'Y' && yn != 'y');if (yn = 'y' | yn = 'Y')
14、0; /*如果选择更新操作*/ printf("INPUT NEW AGE:"); scanf("%d",&NEWAGE); /*用户输入新年龄到主变量中*/ EXEC SQL UPDATE Student
15、; /*嵌入式SQL*/ SET Sage = :NEWAGE WHERE CURRENT OF SX ; /*对当前游标指向的学生年龄进行更新*/ EXEC SQL CLOSE SX;
16、0; /*关闭游标SX不再和查询结果对应*/ EXEC SQL COMMIT WORK; /*提交更新*/ EXEC SQL DISCONNECT TEST; /*断开数据库连接*/2、使用MS-DOS进行预编译: 1)进到Binn文件下:cd C:Program FilesMicrosoft SQL ServerMSSQLBinn 2)调用预编译程序nsqlprep.exe程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论