《数据库系统概论》课程之实验五 通过嵌入式SQL访问数据库
程序员文章站
2022-03-04 19:36:52
...
-
实验目的
熟悉通过嵌入式SQL(主语言为C语言)编程访问数据库。
-
实验内容和要求
熟悉RDBMS的预编译程序。通过嵌入式SQL编程访问数据库的基本步骤
对学生课程数据库中的表,完成下面功能(你也可以自己给出功能要求):
1. 查询某一门课程的信息。要查询的课程由用户在程序运行过程中指定,放在主变量中。
2. 查询选修某一门课程的选课信息,要查询的课程号由用户在程序运行过程中指定,放在主变量中,
然后根据用户的要求修改其中某些记录的成绩字段。
-
实验内容与完成情况
首先安装postgre数据库
sudo apt-get install postgresql
安装预编译所需要的工具
sudo apt install libecpg-dev
进入postgres数据库设置好密码,并建立好一个数据表并插入数据。
编写一个嵌入式sql代码 命名为lab.pcg文件
此代码功能是将loan_number L-15 对应的amount数值改成自己输入的数值
EXEC SQL BEGIN DECLARE SECTION;
int anount;
const char *target = "aaa@qq.com";
const char *user = "postgres"; //若无修改 默认为此用户名
const char *password = "123456"; //注意将密码改成自己的密码
EXEC SQL END DECLARE SECTION;
int main(void)
{
char anount[16];
printf("Please enter the amount number: ");
scanf("%d", anount); /*get the amount number*/
EXEC SQL CONNECT TO :target USER :user USING :password;
EXEC SQL UPDATE LOAN SET amount = :anount WHERE loan_number = 'L-15';
EXEC SQL COMMIT WORK;
EXEC SQL DISCONNECT postgres;
printf("ok!");
}
使用ecpg工具对lab.pgc进行预编译生成一个c语言文件
ecpg lab.pcg
接下来使用gcc的汇编,生成可执行文件
gcc lab.c -o lab -lecpg -I /user/include/postgresql
执行生成的 ./lab 可执行程序
查看postgres数据库中的内容,发现数据已经被更改