嵌入式SQL应用
来源:互联网 发布:中国国际地位知乎 编辑:程序博客网 时间:2024/05/22 00:34
1、 实现对visual studio的MySql的配置
- 新建一个visual studio的Win32控制台应用程序
- 更改配置管理器,改为release和x64
- 打开属性管理器
得到是下面的界面 - 点击C/C++目录下的常规,输入include的路径进去
点击编辑,加入如下的路径: - 在链接器的常规中输入以下路径:
- 在输入中输入两个附加依赖项
- 将dll添加到project的release的目录中
将c盘的mysql的目录下的dll添加到下面的工程路径下的release中:
- 点击本地Windows调试器,运行代码
2、 实现create_sc_table()或create_course_table()
a) 实现create_course_table()
我们可以通过代码实现这个功能,首先是建立一个MYSQL的对象,然后初始化他:
MYSQL mysql;mysql_init(&mysql);
然后,进行数据库的链接,我们可以查找端口号。
mysql_real_connect(&mysql, "localhost", "root", "password", "database", 3306, 0, 0)
所以,我们需要更改用户名和密码,以及端口号,不过端口号需要自己去查询:
所以,我们还是按照3306来进行链接,链接好了之后,进行数据库的操作。
mysql_query(&mysql, "drop table course;")
这一句,类似于我们的直接在sql中输入drop table course;
然后,我们就可以进行数据的插入
mysql_query(&mysql, "create table course (cno char(1) NOT null primary key,cname char(10) null ,cpno char(1) null ,ccredit int null) engine=innodb;")
这一句话是进行表的建立,是新建一个表格。
mysql_query(&mysql, "insert into course values('1', 'C语言', '',3),('2', '数据库', '1',4),('3', '编译原理', '2',5),('4','数据结构', '3',2),('5', '操作系统','4',3) ;")
这一句是数据的插入。
然后就建立了表格。
可以看下输出为:
这是初始界面,然后,我们输入2,课题看到的是
我们可以看到,结果为:
所以,我们插入的结果是正确的。实现了create_course_table;
3、 实现insert_rows_into_sc_table()或insert_rows_into_course_table()
我们进行对course的数据的插入:
char strquery[100] = "insert into course(cno,cname,cpno,ccredit) values('";
这一句话是我们进行数据的插入的前面的部分,后面要插入的内容是我们自己输入的
所以,我们后面要进行的是字符串的拼接。
printf("Please input cno(eg:1):");scanf_s("%s", icno);strcat_s(strquery, icno);strcat_s(strquery, "','");printf("Please input cname(eg:XXXX):");scanf_s("%s", icname);strcat_s(strquery, icname);strcat_s(strquery, "','");printf("Please input cpno(eg:1):");scanf_s("%s", icpno);strcat_s(strquery, icpno);strcat_s(strquery, "','");printf("Please input iccredit(eg:2):");scanf_s("%s", iccredit);strcat_s(strquery, iccredit);strcat_s(strquery, "');");
这一部分是我们在输入了数据之后,就直接进行了数据的拼接,所以,最终就形成了下面的一句话
insert into course(cno,cname,cpno,ccredit) values('icno’,’icname’,’icpno’,’iccredit’);
所以,我们就可以直接进行数据的插入了
我们可以看下结果为:
插入成功
看下表中的数据为:
所以,我们就完成了这次的实验。
4、工程代码
#include "stdafx.h"#include <stdio.h>#include <string.h>#include <stdlib.h>#include <winsock.h>#include "mysql.h"MYSQL mysql;MYSQL_RES *result;MYSQL_ROW row;int num_fields;int create_student_table();//int create_sc_table();//int create_course_table();//int insert_rows_into_student_table();//int insert_rows_into_sc_table();//int insert_rows_into_course_table();//void pause();int main(int argc, char** argv){ int num = 0; char fu[2]; mysql_init(&mysql); if (mysql_real_connect(&mysql, "localhost", "root", "password", "database", 3306, 0, 0)) { for (;;){ printf("Sample Embedded SQL for C application\n"); printf("Please select one function to execute:\n\n"); printf(" 0--exit.\n"); printf(" 1--创建学生表 6--添加成绩记录 b--删除课程记录 h--学生课程成绩表 \n"); printf(" 2--创建课程表 7--修改学生记录 c--删除成绩记录 j--学生成绩统计表 \n"); printf(" 3--创建成绩表 8--修改课程记录 e--显示学生记录 k--课程成绩统计表 \n"); printf(" 4--添加学生记录 9--修改成绩记录 f--显示课程记录 m--数据库表名 \n"); printf(" 5--添加课程记录 a--删除学生记录 g--显示成绩记录 \n"); printf("\n"); fu[0] = '0'; scanf_s("%s", &fu); if (fu[0] == '0') exit(0); if (fu[0] == '1') create_student_table(); if (fu[0] == '2') create_course_table(); if (fu[0] == '3') create_sc_table(); if (fu[0] == '4') insert_rows_into_student_table(); if (fu[0] == '5') insert_rows_into_course_table(); if (fu[0] == '6') insert_rows_into_sc_table(); if (fu[0] == '7') current_of_update_for_student(); if (fu[0] == '8') current_of_update_for_course(); if (fu[0] == '9') current_of_update_for_sc(); if (fu[0] == 'a') current_of_delete_for_student(); if (fu[0] == 'b') current_of_delete_for_course(); if (fu[0] == 'c') current_of_delete_for_sc(); if (fu[0] == 'e') using_cursor_to_list_student(); if (fu[0] == 'f') using_cursor_to_list_course(); if (fu[0] == 'g') using_cursor_to_list_sc(); if (fu[0] == 'h') using_cursor_to_list_s_sc_c(); if (fu[0] == 'j') using_cursor_to_total_s_sc(); if (fu[0] == 'k') using_cursor_to_total_c_sc(); if (fu[0] == 'm') using_cursor_to_list_table_names(); pause(); } } else { printf("数据库不存在!"); } system("pause"); /*关闭数据库*/ mysql_close(&mysql); return 0;}int create_student_table(){ char yn[2]; char tname[21] = "xxxxxxxxxxx"; if (mysql_list_tables(&mysql, "student"))//删除表student { printf("The student table already exists,Do you want to delete it?\n"); printf("Delete the table?(y--yes,n--no):"); scanf_s("%s", &yn); if (yn[0] == 'y' || yn[0] == 'Y'){ if (mysql_query(&mysql, "delete from student;") == 0)//删除student表格 { printf("Drop table student successfully!\n\n"); } else { printf("ERROR: drop table student \n\n"); } } } mysql_query(&mysql, "SET NAMES GBK;"); /*插入数据*/ if (mysql_query(&mysql, "insert into student values('95001','李斌','16','男','CS'),('95002','赵霞','18','女','IS'),('95003','周淘','17','男','CS'), ('95004', '钱乐','18','女','IS') ,('95005','孙力','16','男','MA');") == 0) { printf("Success to insert rows to student table!\n\n"); } else { printf("ERROR: insert rows \n\n"); } return(0);}int create_course_table(){ char yn[2]; char tname[21] = "xxxxxxxxxxx"; if (mysql_list_tables(&mysql, "course"))//删除表course { printf("The course table already exists,Do you want to delete it?\n"); printf("Delete the table?(y--yes,n--no):"); scanf_s("%s", &yn); if (yn[0] == 'y' || yn[0] == 'Y'){ if (!mysql_query(&mysql, "drop table course;")) { printf("Drop table course successfully!\n\n"); } else { printf("ERROR: drop table course \n\n"); } } } //创建表course //插入数据 if (mysql_query(&mysql, "create table course (cno char(1) NOT null primary key,cname char(10) null ,cpno char(1) null ,ccredit int null) engine=innodb;") == 0) { printf("create table course successfully!\n\n"); } else { printf("ERROR: create table course \n\n"); } mysql_query(&mysql, "SET NAMES GBK;"); if (mysql_query(&mysql, "insert into course values('1', 'C语言', '',3),('2', '数据库', '1',4),('3', '编译原理', '2',5),('4','数据结构', '3',2),('5', '操作系统','4',3) ;") == 0) { printf("Success to insert rows to course table!\n\n"); } else { printf("ERROR: insert rows \n\n"); } return(0);}int insert_rows_into_student_table(){ char csage[] = "18"; char issex[] = "男"; char isno[] = "95002"; char isname[] = "xxxxxx"; char isdept[] = "CS"; char strquery[100] = "insert into student(sno,sname,sage,ssex,sdept) values('"; char yn[2]; while (1){ /*信息的采集,并进行字符串的粘连*/ printf("Please input sno(eg:95001):"); scanf_s("%s", isno); strcat_s(strquery, isno); strcat_s(strquery, "','"); printf("Please input name(eg:XXXX):"); scanf_s("%s", isname); strcat_s(strquery, isname); strcat_s(strquery, "','"); printf("Please input age(eg:18):"); scanf_s("%s", csage); strcat_s(strquery, csage); strcat_s(strquery, "','"); printf("Please input sex(eg:男):"); scanf_s("%s", issex); strcat_s(strquery, issex); strcat_s(strquery, "','"); printf("Please input dept(eg:CS、IS、MA...):"); scanf_s("%s", isdept); strcat_s(strquery, isdept); strcat_s(strquery, "');"); if (mysql_query(&mysql, strquery) == 0) { printf("execute successfully!\n\n"); } else { printf("ERROR: execute \n"); } printf("Insert again?(y--yes,n--no):"); scanf_s("%s", &yn); if (yn[0] == 'y' || yn[0] == 'Y'){ continue; } else break; } if (mysql_errno(&mysql)) // mysql_fetch_row() failed due to an error { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); } return (0);}int insert_rows_into_course_table(){ char icno[2]; char icname[20]; char icpno[2]; char iccredit[2]; char strquery[100] = "insert into course(cno,cname,cpno,ccredit) values('"; char yn[2]; while (1){ /*信息的采集,并进行字符串的粘连*/ printf("Please input cno(eg:1):"); scanf_s("%s", icno); strcat_s(strquery, icno); strcat_s(strquery, "','"); printf("Please input cname(eg:XXXX):"); scanf_s("%s", icname); strcat_s(strquery, icname); strcat_s(strquery, "','"); printf("Please input cpno(eg:1):"); scanf_s("%s", icpno); strcat_s(strquery, icpno); strcat_s(strquery, "','"); printf("Please input iccredit(eg:2):"); scanf_s("%s", iccredit); strcat_s(strquery, iccredit); strcat_s(strquery, "');"); if (mysql_query(&mysql, strquery) == 0) { printf("execute successfully!\n\n"); } else { printf("ERROR: execute \n"); } printf("Insert again?(y--yes,n--no):"); scanf_s("%s", &yn); if (yn[0] == 'y' || yn[0] == 'Y'){ continue; } else break; } if (mysql_errno(&mysql)) // mysql_fetch_row() failed due to an error { fprintf(stderr, "Error: %s\n", mysql_error(&mysql)); } return (0);}
0 0
- 嵌入式SQL应用
- 嵌入式SQL应用(C语言)
- Windows Mobile6 Vs2008 Sql Ce3.5 嵌入式应用开发
- 嵌入式数据库 sql ce的开发与应用
- Windows Mobile6 Vs2008 Sql Ce3.5 嵌入式应用开发
- Windows Mobile6 Vs2008 Sql Ce3.5 嵌入式应用开发(转)
- 嵌入式SQL
- 嵌入式SQL
- 嵌入式SQL
- 嵌入式SQL
- 嵌入式SQL
- 嵌入式 Linux 应用:概述
- 嵌入式linux应用
- 嵌入式linux应用
- 嵌入式 Linux 应用:概述
- 嵌入式 Linux 应用:概述
- 嵌入式 Linux 应用:概述
- 嵌入式数据库的应用
- 自定义View——可打点记录的进度条
- 熵与信息增益
- maven管理项目如何查找jar依赖
- [剑指offer学习心得]之:重建二叉树
- VC++之绘制线条
- 嵌入式SQL应用
- 短进程优先算法C语言实现
- 超炫瀑布流效果 第一篇
- 包与import
- [HTML/CSS]布局学习笔记-企业网站导航部分
- 序列化和发序列化
- 镜头产生红外离焦的原因和解决办法
- JavaWeb学习之旅(一)
- 轮播图效果