麒麟v10 上部署 TiDB v5.1.2 生产环境优化实践
897
2023-04-16
基于MySQL数据库应用开发实现嵌入式数控系统的设计
1 引言
2 数据库实现
2.1 数据库的建立
2.1.1创建work数据库
首先创建一个名称为work的数据库,并包含系统需要的所有表,作为根用户连接到MySQL。具体创建过程如下:
% mysql –uroot mysql; //进入数据库
mysql》 SET PASSWORD=PASSWORD(‘lyw00001’); //为根用户分配一个口令
mysql》 CREATE DATABASE work ; //创建work数据库
//与根用户使用同一口令,并为用户赋予数据库work的完全访问权限
% mysql –ulyw –p lyw00001 work; //连接库
2.1.2创建表
针对基于GTK+库设计的用户操作界面有若干个表与之相对应,下面以一个界面为例详细说明MySQL与GTK+的连接过程。
连接到数据库之后,就可以向它添加内容了,使用CREATE命令来创建一个名为tbl_amend_amend的表。
CREATE TABLE tbl_amend_amend (
number INT NOT NULL PRIMARY KEY,
shapeh VARCHAR(10),
shaped VARCHAR(10),
deleted VARCHAR(10),);
图1amend_data文本文件
表1tbl_amend_amend表
2.2 连接模块
完成数据库及表的创建,有了相关的数据,下一步的工作就是在应用程序中实现与数据库的连接。应用程序中用connect_to_db()模块实现了与数据库work连接功能,模块代码如下:
void Connect_to_db(){……;
conx = mysql_init((MYSQL *)0L); //初始化
……;
temp = mysql_real_connect(conx,126.0.0.1, lyw,lywcita001, work, 0, 0L, 0);
……;}
mysql_real_connect函数用于连接到名称为conx 的MySQL服务器,其主机的IP地址为“127.0.0.1”,用户名为“lyw”,密码为“lywcita001”,连接的数据库名为work。
2.3 填充模块
实现了与数据库的连接后,接下来应将数据库的数据填充到用户界面上去。应用程序中用Fill_clist()模块实现数据填充功能,其实现流程为:用MySQL查询所需的数据;将查询结果保存在内部缓存中;将缓存中的数据显示在用户界面上。模块代码如下:
void Fill_clist(){ ……;
gchar *amend_clist_row[5] = {,,,,}; //定义gtk+数组数据指针及变量
mysql_query(conx,select number,shapeh,deleteh,shaped,deleted from tbl_amend_amend);
result_set = mysql_store_result(conx); //将查询结果保存在内部缓存中
num_fields = mysql_num_fields(result_set); //获得结果集中列的数量
while(db_row = mysql_fetch_row(result_set)) {
lengths = mysql_fetch_lengths(result_set); //获得列的长度
amend_clist_row[0] = db_row[0];
……;
amend_clist_row[4] = db_row[4]; //将获得的db_row字符串数组的值一一对应地赋值给amend_clist_row
gtk_clist_append(GTK_CLIST(modify_list),amend_clist_row); }//填充到clist对应的域中
mysql_free_result(result_set);} //释放结果集所用的内存
编译运行插入程序,实现了数据库向用户界面填充数据功能,获得了如图2所示的界面。
图2 MySQL填充图
2.4 更新模块
当用户在界面上对系统参数进行修改后,希望将新的数据写入数据库保存,确保数据信息的一致性和连续性,因此应用程序应具有根据系统参数的改变而更新数据库的功能。与填充模块类似,应用程序中用Update_database()模块实现数据库更新功能。
3 数据库移植
3.1 移植的硬件平台
本数控系统中采用了嵌入式PC平台,嵌入式PC与标准PC机完全兼容。因而,可以在普通PC上做好设计和开发,再将软件移植到嵌入式PC上。本系统开发采用嵌入式PC104计算机,硬件水平达到P3级,内存为128M,程序存储选用128M CF[4]卡。
3.2 移植过程
要在数控系统中应用数据库和操作界面,则需要将MySQL和操作界面应用程序移植到CF卡中。考虑到CF卡的容量问题,在移植的过程中要对数据库进行裁剪。
3.2.1 mysqld运行服务器的移植
表2 与mysqld可执行文件相关的库文件
执行文件mysqld的大小为3.3M,而其相关的库文件的大小约为2M,将mysqld并同上述相关的库文件一起移植到CF卡上,这样mysqld便可在嵌入式硬件平台上有效地执行了。
3.2.2应用文件的移植
假定应用程序的可执行文件为app,用命令ldd app同样可以查询到与可执行文件app相关的库。将应用程序连同与应用程序执行相关的库文件一起移植到CF卡上。应用程序的大小约为100K,与应用程序执行相关联的库文件的大小约为8M,而这8M的库文件大部分为嵌入式Linux系统自身带有的库文件,基本上不需要再移植。这样就可在嵌入式数控系统中运行用户操作界面程序,而在后台运行数据库程序了。
4 结束语
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。