《数据库系统概论》课程之实验五 通过嵌入式SQL访问数据库

一、实验目的

熟悉通过嵌入式SQL(主语言为C语言)编程访问数据库。

二、实验平台和实验工具

  • 在KingbaseES数据库管理系统上,通过C语言编写访问数据库的应用程序来对数据库进行各种数据操作。
  • 编程工具VC++6.0
  • 另需要32位KingbaseES的lib库,后会详细说明。

三、实验内容和要求

熟悉RDBMS的预编译程序。通过嵌入式SQL编程访问数据库的基本步骤,
对学生课程数据库中的表,完成下面功能(你也可以自己给出功能要求):

  1. 查询某一门课程的信息。要查询的课程由用户在程序运行过程中指定,放在主变量中。

  2. 查询选修某一门课程的选课信息,要查询的课程号由用户在程序运行过程中指定,放在主变量中,然后根据用户的要求修改其中某些记录的成绩字段。

要求:提交源程序并标识必要的注释。保证程序能正确编译和运行,认真填写实验报告。

1.嵌入式SQL

要求:将一段连续的SQL操作写成嵌入到C程序中的程序,调试程序,使得程序能完成一项复杂的数据处理功能,并提交程序。
嵌入式SQL由SQL语句和C/C++代码组成。其中SQL语句由预处理器翻译成C或C++的源代码。对预处理后的源代码进行编译、链接生成可执行程序后方可运行。

2.KingbaseES预处理器

KingbaseES的预处理程序是esqlc.exe。其常用的语法格式如下:

  • esqlc详细的语法格式以及参数意义,请参阅联机帮助。
  • 要求程序文档名的后缀为.pc,可以省略。
  • 预编译后得到的文档,与程序文档同名,后缀为.c;放在与程序文档同一个路径下。
    esqlc.exe存在KingbaseES的安装目录的Basesoft\KingbaseES\4.1\bin下。例如,KingbaseES的安装目录是C:\Program Files,那么eslqc.exe则在C:\Program Files\Basesoft\KingbaseES\ 4.1\bin下。
    注意:在安装SQL Server时并不会同时安装预编译应用程序nsqlprep.exe,需要将此文件另拷贝至安装目录下;而KingbaseES在安装时会同时安装此文件,因此不需要另外拷贝

3.预编译

用KingbaseES预处理程序esqlc.exe对含有嵌入式SQL的程序文件进行预编译。如果编写的主程序文件名称为authid.pc,存放在C:\Program Files\Basesoft\KingbaseES\4.1\bin目录下,则预编译具体方法如下:

  • 在linux环境下

    % ecsys authid.pc -o authid.c -I /usr/local/kingbase/include

  • 在windows环境下

    esqlc -I “C:\Program Files\Basesoft\KingbaseES\4.1\include” -o authid.c authid.pc

4.编译和链接

当编译预处理过的C程序时,编译器需要查找ESQLC头文件,所以在编译时需要指定这些文件的路径。在链接时,该C程序需要链接esql.lib库,所以还要指定这个库文件的路径。
下面分别给出在linux和windows环境下,编译和链接该C程序的方法。

  • 在linux环境下
    假定预编译完成后生成的C程序为authid.c。在linux环境下编译和链接该C程序的具体方法如下:
    1.编译.c程序
    % gcc authid.c -c -o authid.o -I /usr/local/kingbase/include
    2.链接,生成可执行文件
    % gcc authid.o -o basetab.out -I /usr/local/kingbase/include -L /usr/local/kingbase/lib -lecsys –lpq

  • 在windows环境下
    我们假定预编译生成的authid.c存放在Basesoft\KingbaseES\4.1\bin目录下。我们使用命令行形式对该程序进行编译和链接,具体方法如下:
    1.编译.c程序
    cl /c /DWIN32 /I"C:\Program Files\Basesoft\KingbaseES\4.1\include" /Foauthid.obj authid.c
    2.链接,生成可执行文件
    link /out:authid.exe authid.c "C:\Program Files\Basesoft\KingbaseES\4.1\lib\esql.lib

四、实验步骤

1.下载相关文件

VC++的32位控制台程序,与64位Kingbase的lib文件不兼容。需要下载32位kingbase的库文件。

  • 下载32位的Kingbase

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值