嵌入式SQL访问数据库实验报告1.doc
上传人:sy****28 上传时间:2024-09-15 格式:DOC 页数:8 大小:103KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

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

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

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

黄冈师范学院提高型实验报告实验课题嵌入式SQL访问数据库(实验类型:□综合性■设计性□应用性)实验课程数据库系统概论实验时间2012年5月25日学生姓名邵旭东专业班级信息1001班学号201021240106实验目的和要求1.编写嵌入式C程序,编程实现了对“学生课程数据库”的访问和对Student表中年龄进行更新。2.装SQLServer2000和VisualC++程序。3、将一段连续的SQL操作写成嵌入到C程序中的程序,调试程序,使得程序能完成一项复杂的数据处理功能,并提交程序。实验条件R429三星笔记本电脑一台。实验原理分析本实验是通过嵌入式SQL,将SQL语句嵌入到C程序设计语言中,完成对数据库的操作。在此实验中对ESQL程序的处理流程如下图:C语言程序含SQL语句RDBM的预处理程序ESQL语句转换为函数调用主语言编译程序目标语言程序要让ESQL编程第一次在VC+6.0和SQLserver2000环境中编译运行,成功的完成此次实验,以下三步要走好:初始化编译环境。进行ESQL预编译。进行C编译。实验方案或步骤初始化编译环境将SQL安装光盘内的DEVTOOLS文件夹复制到SQL的安装目录下(!!默认下为C:\ProgramFiles\MicrosoftSQLServer\),执行.\DEVTOOLS\SAMPLES\ESQLC\目录中的UNZIP_ESQLC.EXE文件(!!点击finish,默认解压到当前目录下!!),解压预编译必要的头文件和库文件,然后运行解压出来的批处理文件setenv.bat初始化SQL预编译环境(这项操作实际上设置两个环境变量)。接下来添加SQL预编译接口,将安装光盘中X86\BINN中的nsqlprep.exe,sqlaiw32.dll,sqlakw.32.dll复制到SQL安装目录(!!默认下为C:\ProgramFiles\MicrosoftSQLServer\)中的\MSSQL\Binn\(注:\MSSQL\Binn\改为:\MSSQL\Binn;)目录下,并将C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Binn添加到环境变量中(方法是:右击我的电脑,点击我的电脑属性,点击高级,点击环境变量,点击path,粘贴在‘;’号后)。SQL设置完了,现在开始设置VC编译环境。进入VC安装目录(默认为C:\ProgramFiles\MicrosoftVisualStudio\),运行VC98\Bin目录中的批处理文件VCVARS32.BAT。运行VC,添加二次编译ESQL程序的头文件和库文件:(1).工具->选项->目录->在Includefiles中添加SQL安装目录\devtools\include\(默认为:C:\ProgramFiles\MicrosoftSQLServer\devtools\include)将SQLserver自带的用于数据库开发的头文件包含到工程环境中。(2).工具->选项->目录->在Libfiles中添加SQL安装目录\devtools\x861ib\(默认为:C:\ProgramFiles\MicrosoftSQLServer\devtools\x86lib)将开发用到的包包含到工程中。2.ESQL程序代码的编写与调试#include<stdio.h>#include<stdlib.h>EXECSQLBEGINDECLARESECTION;chardeptname[20];charHSno[9];charHSname[20];charHSsex[4];intHSage;intNEWAGE;EXECSQLENDDECLARESECTION;longSQLCODE;EXECSQLINCLUDEsqlca;intmain(){intcount=0;charyn;printf("请输入您要更新的系名(Sdept):");scanf("%s",&deptname);EXECSQLCONNECTTOX6X8-20120111LP.sxdUSERsa.123456;EXECSQLDECLARESXCURSORFORSELECTSno,Sname,Ssex,SageFROMStudentWHERESdept=:deptname;EXECSQLOPENSX;for(;;){EXECSQLFETCHSXINTO:HSno,:HSname,:HSsex,:HSage;if(sqlca->sqlcode==0)break;if