《数据库系统实验》
实验报告
题目 |
实验6——嵌入式SQL应用 |
一、实验环境:
1、操作系统:Windows 11 22H2;
2、DBMS :mysql 8.0 CE;
二、实验内容与完成情况
6.0 环境配置
(1)打开Visual Studio Community 2022,新建Windows桌面向导。
(2)进入应用程序设置页面,这里应用程序类型选择“控制台应用程序”,附加选项选择“空项目”,单击“确定”按钮。
(3)在源文件夹中上单击鼠标右键,从快捷菜单中选择“添加”->“新建项”,新建源程序,然后将c语言模板粘贴至源文件中。
(4)选择工程项目,选择“项目”->“属性”命令,按照指引分别完成如下配置。
(5)把libmysql.dll添加到与x64文件夹同一级的文件夹中。
(6)完善源程序代码。
源程序的完整代码附在实验报告的最后。此处我们提出几点在编写代码过程中遇到的问题与解决方案。
a.如果使用了诸如 strcpy等被认为存在潜在安全风险的函数,编译器可能会生成警告。为了抑制这些警告,我们可以在包含可能引发警告的头文件之前定义_CRT_SECURE_NO_WARNINGS。
b. 在 C 语言中,mysql_error() 函数用于获取 MySQL 服务器返回的错误信息。如果发生错误,它返回一个字符串,该字符串包含错误的描述信息。我们利用它打印错误信息,以助于完成调试。
c.我们使用”mysql_query(&mysql, "set names gbk");”语句,用来设置客户端和服务器之间的通信字符集为GBK,以解决中文输入问题。
6.1 实现create_course_table()子程序的功能
由图可知,course表成功被创建。
6.2 实现insert_rows_into_course_table()子程序的功能
由图可知,course表成功被插入新数据。
附:完整源代码
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winsock.h>
#include "mysql.h"
using namespace std;
int create_course_table();
int insert_rows_into_course_table();
MYSQL mysql;//声明为全局变量,待会在主函数,功能函数中都能对它访问
MYSQL_RES* result;
int main(int argc, char** argv, char** envp)
{
int num = 0;
char fu[2];
mysql_init(&mysql);//获得或初始化一个MYSQL结构
if (mysql_real_connect(&mysql, "localhost", "root", "root", "hello", 3306,