




免费预览已结束,剩余4页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
黄冈师范学院提高型实验报告实验课题嵌入式SQL访问数据库(实验类型:综合性 设计性 应用性)实验课程数据库系统概论实验时间2012年5月25日学生姓名邵旭东专业班级信息1001班学 号201021240106一、 实验目的和要求 1. 编写嵌入式C程序,编程实现了对“学生课程数据库”的访问和对Student表中年龄进行更新。2. 装SQL Server2000和Visual C+程序。3、 将一段连续的SQL操作写成嵌入到C程序中的程序,调试程序,使得程序能完成一项复杂的数据处理功能,并提交程序。二、 实验条件R429三星笔记本电脑一台。三、 实验原理分析 本实验是通过嵌入式SQL,将SQL语句嵌入到C程序设计语言中,完成对数据库的操作。在此实验中对ESQL程序的处理流程如下图:C语言程序含SQL语句RDBM的预处理程序ESQL语句转换为函数调用主语言编译程序目标语言程序 要让ESQL编程第一次在VC+6.0和SQL server 2000 环境中编译运行,成功的完成此次实验,以下三步要走好:1. 初始化编译环境。2. 进行ESQL 预编译。3. 进行C编译。四、 实验方案或步骤1. 初始化编译环境将SQL安装光盘内的DEVTOOLS文件夹复制到SQL的安装目录下(!默认下为C:Program FilesMicrosoft SQL Server),执行.DEVTOOLSSAMPLESESQLC目录中的UNZIP_ESQLC.EXE文件(!点击finish,默认解压到当前目录下!),解压预编译必要的头文件和库文件,然后运行解压出来的批处理文件setenv.bat初始化SQL预编译环境(这项操作实际上设置两个环境变量)。 接下来添加SQL预编译接口,将安装光盘中X86BINN中的nsqlprep.exe,sqlaiw32.dll,sqlakw.32.dll复制到SQL安装目录(!默认下为C:Program FilesMicrosoft SQL Server)中的MSSQLBinn(注:MSSQLBinn改为:MSSQLBinn;)目录下,并将C:Program FilesMicrosoft SQL ServerMSSQLBinn添加到环境变量中(方法是:右击我的电脑,点击我的电脑属性,点击高级,点击环境变量,点击path ,粘贴在;号后)。 SQL设置完了,现在开始设置VC编译环境。进入VC安装目录(默认为C:Program FilesMicrosoft Visual Studio),运行VC98Bin目录中的批处理文件VCVARS32.BAT。 运行VC,添加二次编译ESQL程序的头文件和库文件: (1).工具-选项-目录-在Include files中添加 SQL安装目录devtoolsinclude (默认为: C:Program FilesMicrosoft SQL Serverdevtoolsinclude)将SQL server自带的用于数据库开发的头文件包含到工程环境中。 (2).工具-选项-目录-在Lib files中添加 SQL安装目录devtoolsx861ib(默认为: C:Program FilesMicrosoft SQL Serverdevtoolsx86lib)将开发用到的包包含到工程中。2.ESQL程序代码的编写与调试#include#includeEXEC SQL BEGIN DECLARE SECTION; char deptname20; char HSno9; char HSname20; char HSsex4; int HSage; int NEWAGE;EXEC SQL END DECLARE SECTION; long SQLCODE; EXEC SQL INCLUDE sqlca; int main() int count=0; char yn; printf(请输入您要更新的系名(Sdept):); scanf(%s,&deptname); EXEC SQL CONNECT TO X6X8-20120111LP.sxd USER sa.123456; EXEC SQL DECLARE SX CURSOR FOR 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%-10sn,Sno,Sname,Ssex,Sage); printf(%-10s%-20s%-10s%-10dn,HSno,HSname,HSsex,HSage); printf(是否修改年龄?(y/n); do scanf(%c,&yn); while(yn!=n&yn!=N&yn!=Y&yn!=y); if(yn=y|yn=Y) printf(输入新的年龄:); scanf(%d,&NEWAGE); EXEC SQL UPDATE Student SET Sage=:NEWAGE WHERE CURRENT OF SX; else printf(是否退出程序?(Y/N); do scanf(%c,&yn); while(yn!=n&yn!=N&yn!=Y&yn!=y); if(yn=y|yn=Y) break; EXEC SQL CLOSE SX; EXEC SQL COMMIT WORK; EXEC SQL DISCONNECT ALL; 将该程序保存为sql.sqc保存在D盘。 3.建立数据库,数据的录入。 如上图建立数据库“sxd”在该数据库中建立表“student”,录入数据如上图。 同时必须打开了SQL server 身份验证模式。并设置密码,设置密码的操作步骤如下: 运行企业管理器,展开你要连接的服务器,再展开安全性目录,点击登录,在右边窗口用鼠标右击sa,单击属性,在密码一栏输入新密码,单击确定后再输入一次新密码,sa的密码就修改成功了。在这里我所设置的密码为“123456”。这时在“sql.sqc”中将“服务器名.数据库名 USER 登录名. 密码;”改为“X6X8-20120111LP.sxd USER sa.123456;”并保存。4. 进行ESQL程序的预编译 然后打开命令提示符(cmd)。进入VC安装目录(默认为C:Program FilesMicrosoft Visual Studio),将VC98Bin目录中的批处理文件VCVARS32.BAT拖入cmd窗口中运行。然后再键入: “ nsqlprep程序保存路径sql.sqc SQLACCESS DB 服务器名.数据库名 PASS 登录名.密码”。在这里我输入“nsqlprep D:sql.sqc SQLACCESS DB X6X8-20120111LP.sxd PASS sa.123456”。完成预编译后则会在原sql.sqc文件存储位置处生成同名C文件即sql.c。然后即可进行下一步C编译。5进行C编译运行VC+6.0,新建一个WIN32 Console Application(!注意是WIN32 Console Application不要选成了WIN32 Application!)的工程,然后将预编译生成的c文件加入工程。此时还不能编译成功,需添加两个库文件SQLakw32.lib,Caw32.lib。 操作过程: (1). 文件-新建-工程-WIN32 Console Application-输入工程名-确定 (2). 工程-设置-连接-在对象/库模块中输入SQLakw32.lib Caw32.lib (!两个之间用空格分开!)完成上述操作后, 就可以开始编译、连接及运行了。运行好后在窗口出现如下:输入“CS”。出现如下:然后修改年龄如下:如此完成了实验数据的修改。五、实验结果此时数据库中的数据如下图:到此,实验完成!六、 讨论在此次实验中我遇到了很多困难:在“cmd”窗口中输入“nsqlprep D:sql.sqc SQLACCESS DB X6X8-20120111LP.sxd PASS sa.123456”时若出现“nsqlprep不是内部或外部命令,也不是可运行的程序或批处理文件”则表示在设置环境变量时出错,需重新设置环境变量;若出现“Source file must have .SQC extension”则表示在输入“nsqlprep D:sql.sqc SQLACCESS DB X6X8-20120111LP.sxd PASS sa.123456”时在每段字符中间没有用空格间隔。则重新输入,且每段字符用空格隔开即可。另外注意:打开“cmd”后要先将VC98Bin目录中的批处理文件VCVARS32.BAT拖入cmd窗口中运行。在修改数据库密码的时候,要注意切换下面的数据库为自己建立的数据库,这里我建立的是“sxd”,因此要切换成“sxd”。 在做此次试验以前,由于数据课上,并没有学习环境变量的设置,数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚协议中股票投资收益评估与分割协议
- 生物制药科技公司股份收购与临床试验合同
- 会计师事务所会计出纳人员劳动合同及审计独立性协议
- 离婚财产分割子女抚养与共同财产管理协议
- 2025年七年级下册音乐试卷及答案
- 17莲叶青青课件
- 找对面游戏课件
- 攀岩创意画课件
- 汽车新技术考试题及答案
- 杭州信息技术考试题及答案
- 环境保护工程质量保证措施
- 2025外研版英语八年级上册多元化教学计划
- 公司6s管理制度
- 消防系统施工方案
- 台湾问题演讲稿
- 银行员工消保知识培训
- 2025年防范电信网络诈骗知识竞赛题库及答案
- 2025年华能重庆珞璜发电有限责任公司招聘笔试参考题库含答案解析
- 帕金森病患者吞咽障碍康复中国专家共识 2025版解读
- 现代农业产业园的信息化管理平台建设
- 全套电子课件:网络信息编辑实务
评论
0/150
提交评论