数据库实验指导书(6)

2019-05-24 18:56

本资料由 曲师大 Guang15提供

? 初始化SQLServer的预编译环境,运行文件:

\\devtools\\samples\\esqlc\\setenv.bat。

运行方式与vcvars32.bat相同,结果如下:

3. 初始化Visual C++ 6.0环境。

? Tools->options->directories->Include Files: C:\\Program Files\\Microsoft Server\\devtools\\include

? Tools->options->directories->Lib Files:C:\\Program Files\\Microsoft Server\\devtools\\x86lib

注意:这些路径需要设为第一项。如下图所示:

SQL

SQL

26

本资料由 曲师大 Guang15提供

? Project->Settings->Link->Object/Library Modules,添

加库文件:

SQLakw32.lib,Caw32.lib

注意,两个文件之间用空格分开。

27

本资料由 曲师大 Guang15提供

实验活动

1. 阅读和分析程序esql.sqc,解释程序的主要内容和主要数据结构。 数据结构: 主要为在数据库中存储的表,及针对表进行的查找。 2. 对程序esql.sqc作适当的修改,使之可以在本地系统上可以运行。

进行预处理、编译、连接(lib连接),查看运行结果。 1)修改:

只需要对连接的服务器及数据库进行修改即可:

EXEC SQL CONNECT TO SKY.pubs USER abc.abc; 2)进行预处理:

将esql.sqc文件放在C:\\Program Files\\Microsoft SQL Server\\MSSQL\\Binn目录下,运行cmd,进入C:\\Program Files\\Microsoft SQL Server\\MSSQL\\Binn目录,用nsqlprep esql.sqc的方式运行该文件,可以在C:\\Program Files\\Microsoft

28

本资料由 曲师大 Guang15提供

SQL Server\\MSSQL\\Binn中找到预编译后生成的.c文件。

编写程序,使用嵌入式SQL实现如下的功能:

1. 编写程序,创建下列关系表,并插入数据。

create table provider (

SNO char(5) primary key, SNAME char(10) not null, STATUS int, CITY char(10) );

insert into provider values('S1','精益','20','天津'); insert into provider values('S2','胜锡','10','北京'); insert into provider values('S3','东方红','30','天津'); insert into provider values('S4','丰泰盛','20','天津'); insert into provider values('S5','为民','30','上海'); insert into provider values('S6','通天','25',null)

说明:以上两个步骤在两种方法中都是在同一个程序中实现,关键部分用黄

色标出,exp为在企业管理器中新建的数据库。

源程序如下:

A)用嵌入式SQL实现:

#include #include EXEC SQL INCLUDE sqlca;

int main() {

EXEC SQL BEGIN DECLARE SECTION;

29

//主变量 char sno[5]; char sname[10]; int status; char city[10];

short cityInd;//指示变量

本资料由 曲师大 Guang15提供

EXEC SQL END DECLARE SECTION;

printf(\

if (SQLCODE == 0) {

printf(\ } else {

// 连接DBMS错误

printf(\ return (1); }

EXEC SQL CONNECT TO SKY.exp USER sa.sa;//连接到数据库

//下面为程序的主体部分 sno char(5) status int, city char(10) );

EXEC SQL create table provider (

primary key,

sname char(10) not null,

EXEC SQL insert into provider values('S1','精益','20','天津'); EXEC SQL insert into provider values('S2','胜锡','10','北京'); EXEC SQL insert into provider values('S3','东方红','30','天津'); EXEC SQL insert into provider values('S4','丰泰盛','20','天津'); EXEC SQL insert into provider values('S5','为民','30','上海'); EXEC SQL insert into provider values('S6','通天','25',null); EXEC SQL WHENEVER SQLERROR GOTO error;//错误处理 EXEC SQL WHENEVER NOT FOUND GOTO done; EXEC SQL DECLARE providerCursor CURSOR FOR SELECT sname, city FROM

provider;

30

本资料由 曲师大 Guang15提供

for ( ; ; ) { }

printf (\//若照书上写

/* Fetch next row of the result table */

EXEC SQL FETCH providerCursor INTO :sname,:city:cityInd; /* display data */

printf (\

if ( cityInd< 0)//通过设置指示变量,并判断指示变量的值<0来确

printf (\printf (\

EXEC SQL OPEN providerCursor ;

认和输出null值

else

error:

sqlca.sqlcode编译报语法错 done: }

//断开连接

return 0;

EXEC SQL DISCONNECT ALL;

/* Close the cursor before completing*/ EXEC SQL WHENEVER SQLERROR continue; EXEC SQL CLOSE providerCursor; EXEC SQL COMMIT WORK RELEASE;

1.

31


数据库实验指导书(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016春季电教教材推荐目录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: