嵌入式SQL访问数据库实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

黄冈师范学院

提高型实验报告

实验课题嵌入式SQL访问数据库(实验类型:□综合性■设计性□应用性)

实验课程数据库系统概论

实验时间2012年5月25日

学生姓名邵旭东

专业班级信息1001班

学号201021240106

一、实验目的和要求

1. 编写嵌入式C程序,编程实现了对“学生课程数据库”的访问和对

Student表中年龄进行更新。

2. 装SQL Server2000和Visual C++程序。

3、将一段连续的SQL操作写成嵌入到C程序中的程序,调试程序,

使得程序能完成一项复杂的数据处理功能,并提交程序。

二、实验条件

R429三星笔记本电脑一台。

三、实验原理分析

四、实验方案或步骤

1.初始化编译环境

将SQL安装光盘内的DEVTOOLS文件夹复制到SQL的安装目录下(!!默认下为C:\Program Files\Microsoft SQL Server\),执行.\DEVTOOLS\SAMPLES\ESQLC\目录中的UNZIP_ESQLC.EXE文件(!!点击finish,默认解压到当前目录下!!),解压预编译必要的头文件和库文件,然后运行解压出来的批处理文件setenv.bat初始化SQL预编译环境(这项操作实际上设置两个环境变量)。

接下来添加SQL预编译接口,将安装光盘中X86\BINN中的nsqlprep.exe,sqlaiw32.dll,sqlakw.32.dll复制到SQL安装目录(!!默认下为C:\Program Files\Microsoft SQL Server\)中的\MSSQL\Binn\(注:\MSSQL\Binn\改为:\MSSQL\Binn;)目录下,并将C:\Program Files\Microsoft SQL Server\MSSQL\Binn添加到环境变量中(方法是:右击我的电脑,点击我的电脑属性,点击高级,点击环境变量,点击path ,粘贴在‘;’号后)。

SQL设置完了,现在开始设置VC编译环境。进入VC安装目录(默认为C:\Program Files\Microsoft Visual Studio\),运行VC98\Bin目录中的批处理文件VCVARS32.BAT。

运行VC,添加二次编译ESQL程序的头文件和库文件:

(1).工具->选项->目录->在Include files中添加SQL安装目录\devtools\include\ (默认为: C:\Program Files\Microsoft SQL Server\devtools\include)将SQL server自带的用于数据库开发的头文件包含到工程环境中。

(2).工具->选项->目录->在Lib files中添加SQL安装目录\devtools\x861ib\(默认为: C:\Program Files\Microsoft SQL Server\devtools\x86lib)将开发用到的包包含到工程中。

2.ESQL程序代码的编写与调试

#include

#include

EXEC SQL BEGIN DECLARE SECTION;

char deptname[20];

char HSno[9];

char HSname[20];

char HSsex[4];

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%-10s\n","Sno","Sname","Ssex","Sage");

}

printf("%-10s%-20s%-10s%-10d\n",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;

}

相关文档
最新文档