Linux下数据库应用的设计与实现
基于Linux实现cacti监控应用研究

基于Linux实现cacti监控应用研究Linux是免费、稳定、安全、高性能和高扩展性等优点的开放性操作系统。
Cacti是基于PHP程序语言,MySQL数据库,SNMP协议及RRDTool的网络流量监测工具。
文章主要介绍基于Linux系统下实现开源Cacti软件监控校园网络及软硬件系统设备,从而实现低成本,构建高效率的运维监控管理平台。
最后构建稳定的系统运行环境,确保数字化校园系统高效运行。
标签:监控;开源;运维;网络有效的对整个校园网络、软硬件设备系统监控管理是确保数字化校园正常运行的前提条件。
只有当运维管理人员及时掌握网络及软硬件设备的运行状态,才有可能对已经出现或者可能出现的故障进行及时收集数据、分析、处理和有效预防。
由自建的网络运维监控管理平台为学校网络和软硬件系统运行良好提供了可靠的保障,为网络和系统优化提供了有效的参考数据,从而保障整个数字化校园平台运行良好。
1 Cacti应用研究概述在基于Linux操作系统上,采用Cacti开源软件构建了校园网络流量监控服务,基于普通PC机上搭建网络运维监控服务器。
结合学校运维实际需求,文章对Cacti开源软件进行了应用研究。
1.1 Cacti简介Cacti用PHP语言编写,用SNMP协议获取数据,用rrdtool储存和更新数据,并生成图表展现给运维人员。
Mysql数据库用于变量数据存储和调用,如主机名、主机IP、SNMP团体名、端口号、模板信息等变量。
Cacti提供了非常大的数据和用户管理功能,用户可以自己增加要监控的设备的模板,功能非常完善[1]。
Cacti具备以下特点:(1)开放性,完全免费使用并可获得源代码。
(2)跨平台,支持Linux、Windows、Unix系统。
(3)界面友好,图形界面丰富,模板种类很丰富。
(4)可扩展,丰富的插件资源,大大提高了cacti的功能。
1.2 研究背景学校没有采购昂贵企业级监控商业产品,平时也无法做到7?鄢24小时全面监控。
基于Linux的LDAP应用环境研究与目录服务实现

系型数据库相 比,目录信息包括更 多的描述性信息 , 更适用 于读 多于写 、 无复杂交易和无大容量更新 的应用。但它 的数 据类 型主要是 字符 型 , 为了检 索的需要 添加 了 B N( I 二进制 数据 )CS 忽 略大小写 )C S 大小写 敏感 )T L 电话型 ) 、I( 、E ( 、E ( 等语 法( yt ) 而不是关 系数 据库 提供 的整数 、 点数 、 Sna , x 浮 日 期 、 币等类型 , 货 同样 也不 提供像关 系数据库 中普遍 包含 的 大量 的函数 。它主要面 向数据 的查询服务 ( 查询和修改操作 比一般是 大于 1 : ) 不提供 事务 的回滚机 制 , 的数据修 01 , 它 改使 用简单 的锁定机 制实现 Al r N ti , l—o — o n 它的 目标是快 hg 速响应和大容量查 询并 且提供 多 目录服务 器的信息 复制 功
2 LA D P与关 系数据库 的比较
在传统 的开发 以提供信息 查询为主 的系统 中, 如通过用 户姓名能够获得该用户 的邮件地址 、 家庭住址等信息 , Y - 如 a
ho提供的 P ol sac o epe erh服务 和 Widw ul k中提供 的消 n o sO to o
维普资讯
僵囊技术 与僵囊佬
基 于 Ln x的 L A iu D P应 用环 境 研 究 与 目录服 务 实现
Su yo iu td fL n x—b s dL a e DAP A p iain E vr n n n mpe nain o ie tr e r e p l t n i me ta d I lme tt fD rc。y S ni c 。 o 。 c
Op n d p wh c ss p o t d b i u n d t i e L a ih i u p r y L n x i eal e .
Linux下访问SQL Server数据库的应用

2跨平台数据库访问的系统构架
在 wid w 平台的上访问数据库 , nos 可以通 过标准的数据 库访 问接 口, 即开放数据库连接 ODBC OI aa ae o n cii ) ( mn D tb s C n e t t 。它是 vy 被 人 们 广 泛 使 用的 数据 库 访 问 编 程 接 口 。 O C对程序而 言 , 准化 了数据库 的访问 。 DB 标 然而 O DBC并不支持远程对其进 行网络连接 , 要从 Ln x平台对各 种 wid ws iu n o 的异构数据 库进 行访 问 , 必须 借 助一 个 中间 件 , 使 就 它 wid ws n o 端的数据源对 Ln x iu 端的应 用程 序可 见, 而且能接收L n x端应 用程序的数据请求 , iu 通过 ODBC进行查询 , 然后将结果集以一定的 形式返回。就是说 , 要在 L n x平台和 wi iu n d ws o 平台之 间构建一个 中间件 , 使得数据库的 数据对应 用程序可 见, 从而达到跨平 台访问数 据 库 的 目的 。这样 的 系统 构 架如 图 l所示 。 系统架构 中的 中间件 , 介于应 用程序端和 数 据库端 之 间。分为应 用程 序端的 编程接 口 和 数据 库端 的眼 务进程 两部 分 。 服务进程运行在 wid ws n o 平台 , 当于一 相 个 代理( e t, Ag n)负责监听来 自应用程 序的数据 库请 求并且与数据库进行连接 , 将应 用程序请 求 的查询 以一定 的格式 返 回给 编程接 口。另 外 , 务 进 程还 实 现如 连 接池 、事 务管 理 、 服 数据 更新事 件监听 的功能 。这 是中 间件的 核 心部分 , 它的性能好坏 , 将直接影响整个系统 的
维普资讯
! Q: !
linux + qt的毕业设计

linux + qt的毕业设计
以下是一些基于Linux 和Qt 的毕业设计题目,
1. 基于Qt 的Linux 桌面应用程序开发
- 设计并实现一个具备基本功能的文件管理器。
- 实现文本编辑器,支持常见的文本编辑功能。
- 开发一个简单的计算器,支持基本的数学运算。
2. 基于Qt 的Linux 游戏开发
- 利用Qt 图形界面库和游戏引擎,开发一个简单的2D 游戏。
- 设计并实现游戏的逻辑、界面和音效。
3. 基于Qt 的Linux 嵌入式系统应用开发
- 开发一个智能家居控制系统,通过Linux 嵌入式设备控制家庭电器。
- 设计并实现一个工业控制界面,用于监控和控制工厂设备。
4. 基于Qt 的Linux 网络应用程序开发
- 开发一个即时通讯工具,实现文本聊天和文件传输功能。
- 设计并实现一个简单的网页浏览器。
5. 基于Qt 的Linux 数据库应用程序开发
- 开发一个学生信息管理系统,实现学生信息的增删改查功能。
- 设计并实现一个小型的图书管理系统。
Linux网络服务与应用课程设计

1.用Squid配置反向代理通过squid配置反向代理主要配置“squid.conf”这个配置文件;2.Squid反向代理单个后台WEB服务器修改squid监听的端口和内部WEB服务器的IP地址来设置反向代理服务;3.设置反向代理所需要的DNS入口信息,Internet用户不可见,有两种方法可以设置内部DNS,使用内部DNS服务器来解析或者使用/etc/hosts文件来实现;4.安装配置apache服务,更改apache默认站点的名称和端口号,在配置文件末尾添加三个基于IP的虚拟主机。
步骤:(1)在BB机器上配置DNS服务增加区域。
编辑DNS的主配置文件named.conf并增加如下内容:创建.hosts文件:启动DNS服务:AA.BB两台机器DNS客户端配置文件都指向192.168.240.7。
在(192.168.240.6)上:在(192.168.240.7)上:(2)编辑两台sendmail邮件服务器的宏配置文件sendmail.md。
在两台邮寄服务器上都编辑宏配置文件sendmail.mc,找到“Addr=127.0.0.1”所在的行,在该行前面加上注释“dnl”,在(192.168.240.6)上,执行生成新的sendmail.cf文件:在(192.168.240.7)上,同(192.168.240.6)的操作。
(3)编辑local-host-names数据库文件。
(4)编辑access数据库文件(192.168.240.6),并执行生成新的access.db数据库文件,在(192.168.240.7)上,执行生成新的access.db数据库文件:(5)重新启动sendmail。
(6)配置dovecot服务,开启pop3服务。
编辑dovecot的配置文件/etc/dovecot.conf,可以开启pop3服务启动dovecot服务:在(192.168.240.7)上:执行上面同样的步骤。
Linux下因特网密钥交换协议的设计与实现

了 毅 VA L 聚
Li ux下因特网密钥交换协议的设计与实现 n
郭凌云
( 湖南省永州职讹技术学院医学院 湖南 永州 425006 )
[摘 要〕 P Se 协议和因特网密钥交换协议 ( I E ,然后结合具体的科研工作,详细阐述在Lin x操作系统上实现IK 协议的一种具体实现方案,解决如何 介绍I c K) u E
一
件 日 de P ea r
l A H He a d e r
H 的 山鲜
任p s
TCP P刚。 ad
尹
犷 1 曰
灿 h
0 盆日
图2 通道模式下 A 嵌套 ESP H
通道模式保护整个I 包,在 P
报的最终目的地不是安全终点的情况
图4 安全关联
库结构示意图]Fra bibliotek信息科学
从 LLE Y
SIL ICO N
. 盈 鬓
门 ~J . 一 一 认j 一 l
图1 传输模式下 A 嵌套 Es H P
,“{ Tpp‘ 1 p日 一 c 讼加军一 , 衡 无认 “‘ , 。 “
IP 日 a d e r e
H日 自 1 日
厕
图3 系统模块结构图
:
灿 h
1泪 a
.穷希班抓乡豹 可
E Sp
TCP Pa扒 d oa
加密一
注 护
抽 }
护、以及有限的数据流机密性保证。
下,通常需要在这种模式下使用IPSe ,它既适用于主机,也适用于安全 c 网关. 通道模式下A 嵌套E H SP的例子如图2所示。 ( 二) 因特网密钥交换协议 ( I E K) IK 协议是个通用的因特网密钥交换协议,不仅可以用于IPSe 的安全 E c 关联的协商,也可以用于像O F 这类需要协商安全信息的场合. 在用 SP IPSe 保护一个I 包之前,必须先建立一个安全联盟 ( 安全关联) 。正如 c P 前面指出的那样,安全关联可以手工创建或动态建立。In e n t 密钥交换 t r e ( IK 用于动态建立安全关联。IK E) E代表工 c 对安全关联进行协商,并 PSe 对 安全关联数据库进行填充。IK 属于一种混合型协议 ,建立在 由 E n e I t rnet 安全联盟和密钥管理协议 ( Is K A 即) 定义的一个框架上,同时, K I E还实现 了 两种密钥管理协议的一部分: O l e 和S EM k a y K E。此外,IK 还 E 定义了它自己的两种密钥交换方式。 二、Unu T IKE协谈的 x 设计与实现 i L nux 目 前是操作系统中的 研究热点,有庞大的研究群体和使用者都 在研究和使用它,这在很大程度上可以帮助我们深入我们的研究领域,并 及时地找到足够多的用户测试我们的研究成果,对研究的深入和科技成果
在Linux操作系统上进行数据库迁移
在Linux操作系统上进行数据库迁移数据库迁移是将现有的数据库从一个系统或环境迁移到另一个系统或环境的过程。
针对Linux操作系统上的数据库迁移,本文将为您介绍一种常用的方法,以保证迁移过程顺利进行。
一、准备工作在进行数据库迁移前,首先需要完成以下准备工作:1. 安装目标环境:在Linux操作系统上安装并配置好目标数据库,确保其版本与原数据库一致。
2. 备份源数据库:使用适当的备份工具对源数据库进行备份,以防止数据丢失。
3. 确保网络连接:确保源数据库和目标数据库之间的网络连接畅通。
二、迁移步骤下面是在Linux操作系统上进行数据库迁移的步骤:1. 导出源数据库使用源数据库管理系统提供的工具,如mysqldump、pg_dump等,导出源数据库的数据和结构。
命令示例:```$ mysqldump -u username -p password database_name >database_dump.sql```2. 将导出文件传输至目标服务器使用文件传输工具,如scp、rsync等,将导出的数据库文件(database_dump.sql)传输至目标服务器。
命令示例:```$ scp database_dump.sql username@target_server:/path/to/directory ```3. 导入数据库至目标服务器在目标服务器上,使用目标数据库管理系统提供的工具,如mysql、psql等,导入数据库文件。
命令示例:```$ mysql -u username -p password database_name </path/to/directory/database_dump.sql```4. 数据库配置调整在目标服务器上,根据实际需求对数据库进行配置调整,包括用户权限、表空间设置等。
5. 迁移测试在目标服务器上,执行一些简单的数据库操作,如查询、插入、更新等,验证数据库迁移是否成功。
LinuxUnix下ODBC的安装、配置与编程
Linux/Unix下ODBC的安装、配置与编程本文主要内容是介绍ODBC的简单原理,以及如何在Linux/Unix下进行ODBC的安装、配置与编程。
ODBC原理ODBC 是Open Database Connect 即开放数据库互连的简称,它是由Microsoft 公司于1991 年提出的一个用于访问数据库的统一界面标准,是应用程序和数据库系统之间的中间件。
它通过使用相应应用平台上和所需数据库对应的驱动程序与应用程序的交互来实现对数据库的操作,避免了在应用程序中直接调用与数据库相关的操作,从而提供了数据库的独立性。
ODBC 主要由驱动程序和驱动程序管理器组成。
驱动程序是一个用以支持ODBC 函数调用的模块,每个驱动程序对应于相应的数据库,当应用程序从基于一个数据库系统移植到另一个时,只需更改应用程序中由ODBC 管理程序设定的与相应数据库系统对应的别名即可。
驱动程序管理器可链接到所有ODBC 应用程序中,它负责管理应用程序中ODBC 函数与DLL 中函数的绑定。
ODBC 使用层次的方法来管理数据库,在数据库通信结构的每一层,对可能出现依赖数据库产品自身特性的地方,ODBC 都引入一个公共接口以解决潜在的不一致性,从而很好地解决了基于数据库系统应用程序的相对独立性,这也是ODBC 一经推出就获得巨大成功的重要原因之一。
从结构上分,ODBC 分为单束式和多束式两类。
1.单束式驱动程序单束式驱动程序介于应用程序和数据库之间,像中介驱动程序一样数据提供一个统一的数据访问方式。
当用户进行数据库操作时,应用程序传递一个ODBC 函数调用给ODBC 驱动程序管理器,由ODBC API 判断该调用是由它直接处理并将结果返回还是送交驱动程序执行并将结果返回。
由上可见,单束式驱动程序本身是一个数据库引擎,由它直接可完成对数据库的操作,尽管该数据库可能位于网络的任何地方。
2.多束式驱动程序多束式驱动程序负责在数据库引擎和客户应用程序之间传送命令和数据,它本身并不执行数据处理操作而用于远程操作的网络通信协议的一个界面。
基于Linux的智能家居系统设计与实现
基于Linux的智能家居系统设计与实现随着科技的发展,智能家居系统已经成为现代家庭的一个热门话题。
随着人们对生活质量和便利性的要求不断提高,智能家居系统在家庭生活中发挥着越来越重要的作用。
基于Linux的智能家居系统设计与实现将成为未来智能家居系统的一个重要方向。
本文将就基于Linux的智能家居系统的设计与实现进行探讨,希望能够为智能家居技术的发展做出一些贡献。
一、智能家居系统的发展趋势随着物联网技术的迅猛发展,智能家居系统已经成为了居家生活中的一部分。
智能家居系统通过各种传感器和设备,可以实现家庭的自动化控制和智能化管理,提高居家生活的便利性和舒适度。
目前,市场上已经出现了各种各样的智能家居产品,比如智能灯具、智能烟雾报警器、智能门锁等,这些产品都可以通过手机或者语音助手进行远程控制和管理。
智能家居系统已经成为了家庭生活中不可或缺的一部分。
二、基于Linux的智能家居系统设计与实现在设计基于Linux的智能家居系统时,需要考虑以下几个方面的要素:1. 系统架构设计智能家居系统的架构设计至关重要,要使得系统稳定可靠,易于维护和扩展。
在设计时需要考虑到传感器、执行器、数据处理单元和用户界面等要素,以及它们之间的交互关系。
要考虑如何实现远程控制和监控,以及如何保证系统的安全性和隐私保护。
2. 设备兼容性智能家居系统通常包括各种不同厂家的设备,因此要充分考虑设备的兼容性。
Linux 作为开源系统,可以通过定制驱动程序和接口来实现对不同设备的支持,从而实现设备的统一管理和控制。
3. 数据处理与分析智能家居系统产生的大量数据需要进行存储和分析,以实现智能化的管理和控制。
而Linux作为强大的服务器系统,可以通过各种开源的数据库和分析工具来实现大规模数据的存储和处理。
某智能家居系统采用基于Linux的嵌入式系统,通过自主开发的智能家居网关设备来实现对各种智能设备的控制和管理。
该系统通过WiFi和蓝牙等无线通信技术,可以连接家庭中的各种智能设备,比如灯具、插座、烟感器、门锁等。
linux设备驱动程序的设计与实现
linux设备驱动程序的设计与实现
Linux设备驱动程序的设计与实现是一个涉及底层系统编程和硬件交互的复杂过程。
下面是一个简单的步骤指南,以帮助你开始设计和实现Linux设备驱动程序:
1. 了解硬件:首先,你需要熟悉你要驱动的硬件设备的规格和特性。
这包括硬件的内存空间、I/O端口、中断请求等。
2. 选择驱动程序模型:Linux支持多种设备驱动程序模型,包括字符设备、块设备、网络设备等。
根据你的硬件设备和需求,选择合适的驱动程序模型。
3. 编写Makefile:Makefile是一个文本文件,用于描述如何编译和链接你的设备驱动程序。
它告诉Linux内核构建系统如何找到并编译你的代码。
4. 编写设备驱动程序:在Linux内核源代码树中创建一个新的驱动程序模块,并编写相应的C代码。
这包括设备注册、初始化和卸载函数,以及支持读写和配置硬件的函数。
5. 测试和调试:编译你的设备驱动程序,并将其加载到运行中的Linux内核中。
使用各种测试工具和方法来验证驱动程序的正确性和稳定性。
6. 文档和发布:编写清晰的文档,描述你的设备驱动程序的用途、用法和已知问题。
发布你的代码以供其他人使
用和改进。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期:2007-11-27
作者简介:张绪兵(1981-),男,江西九江人,硕士研究生,研究方向为图像处理及其在智能检测控制中应用;陈今润,硕士生导师,副教授,研究方向为检测技术与自动化装置。
Linux下数据库应用的设计与实现张绪兵,陈今润(重庆大学自动化学院,重庆400044)
摘 要:很多实际应用都需要使用数据库来保存数据,以供今后查询、修改等。在介绍Linux下GTK+编程框架后,简略讲述glade产生的背景以及其配合GTK+的使用方法,然后结合一事例来重点讨论使用GTK+中GtkTreeView显示控件和MySQL数据库结合,以C为开发语言,开发数据显示和保存技术。实践表明,这种开发技术是可行的。关键词:Linux;GTK+;MySQL;glade;数据库中图分类号:TP311113 文献标识码:A 文章编号:1673-629X(2008)08-0226-04
DesignandImplementationofDatabaseunderLinuxOperationSystem
ZHANGXu2bing,CHENJin2run(CollegeofAutomation,ChongqingUniversity,Chongqing400044,China)
Abstract:Inpracticalapplications,peopleneeddatabasetechnologyforsavingdatainordertoqueryormodifythedatainthefuture.In2troducestheframeworkoftheGTKapplicationbasedonLinux.ThenbrieflydescribesthebackgroundonthegladeandhowtoprogramwiththecombinationoftheGTKlibraryandgladelibrary.Atlast,canvasesthewayofdevelopingdatabaseapplicationsbasedonClan2guagewithMySQLandGtkTreeView,oneofwidgetoftheGTK+.Thepracticeshowstheeffectivenessofthisway.Keywords:Linux;GTK+;MySQL;glade;database
0 引 言GTK+(GIMPToolkit)是一个在Linux平台上比较流行的GUI构建工具,著名的Gnome平台就是基于它的,且是当今百分之百零付费的工业级图形界面开发工具。MySQL是一个精巧的SQL数据库管理系统,虽然它不是开放源代码产品,但可以自由使用。由于其功能强大、灵活性好、应用编程接口丰富以及系统结构精巧,从而受到广大软件用户的青睐[1]。将两者结合起来使用在医疗检验仪器的数据处理和储存上,其实现方法对其他类似应用可以起借鉴作用。
1 应用GTK+编程GTK+程序的框架都是差不多的,一般模式如下:
gtk-init(&argc,&argv);/3初始化GTK+程序3/然后创建基本控件,比如窗口、按钮等,并为控件
加回调函数以实现所要求的操作。例如下面是创建一个按钮并为其增加信号连接函数:
GtkWidget3btn=gtk-button-new-with-label(“HelloWorld!”);g-signal-connect(G-OBJECT(btn),“clicked”,G-CALL2BACK(btn-click),(gpointer)“hello”);最后进入主循环gtk
-main()。GTK+
是一种事
件驱动工具包,这意味着它将gtk
-main
函数中一直等
待,直到事件发生和控制权被传递给相应的函数[2]。所以需要程序员创建一个信号连接函数来捕获该事件信号,并告诉GTK程序事件发生后调用哪个回调函数。信号连接函数一般形式为:gintgtk
-signal-con
2
nect(GtkObject3obj,gchar3name,GtkSignalFuncfunc,gpointerdata)。第一个参数3obj是将要发出信号的构件,第二个参数3name是希望捕获的信号的名称,第三个参数func是捕获信号时要调用的函数,第四个参数是要传递给func的形参。通常func函数称为“回调函数”,它的形式通常是voidcallback
-func
(
GtkWidget3widget,gpointerdata)。其中第一个形参
是指向发出信号的构件的指针,第二个形参是指向传递给回调函数的用户数据的指针。注意上述对“信号”
第18卷 第8期2008年8月 计算机技术与发展COMPUTERTECHNOLOGYANDDEVELOPMENT Vol.18 No.8Aug. 2008的回调函数的声明仅仅是一个通用的规则。其他规则参考文献[3]。使用GTK编程的概念并不难。然而使用这些函数存在一些困难:创建程序界面的代码是非常繁琐的,
特别是在使用不同的布局构件组装界面元素等时,不能在编写代码时直接看到显示效果。应该有一种工具,可以将人们从这些工作中解放出来,让人们能够专注于任务的核心。现在有个非常出色的界面生成工具:Glade。它可以用可视化的方法绘制应用程序界面,设置窗口、构件的外观、设置构件信号的回调函数,
然后生成C语言代码。它类似于VisualBasic。不同点在于VB是一个集成开发环境,不仅可以创建界面,还可以创建完整的应用程序,以及调试、编译等。而Glade仅仅是一个GUI(图形用户接口)生成器,它只能用于生成创建界面的代码,实现应用程序的功能、编译、调试等工作需要使用其他工具。创建完界面后,再与gtk结合使用[4]。其得到GTK的构件方法如下:
GladeXML3xml=glade-xml-new(“udc.glade”,“mainwin2dow”,NULL);/3非0表示成功调用,mainwindow为根构件,udc.glade为使用glade保存的文件名3/GtkWidget3scrollwin-treeview=glade-xml-get-widget(xml,“scrollwin-treeview”);/3得到根构件下的一个子构件,即
在glade中名字为scrollwin
-treeview的构件3/
glade-xml-signal-autoconnect(xml);/3自动连接所有与信号句柄相同的函数3/
注意当xml不使用的时候,使用gtk
-object-unref
(GTK-OBJECT(xml));及时释放xml。
2 用MySQL和GTK+中GtkTreeview开发数据库结合一事例来讲述整个流程,需要一个包含病人信息的结构体,为了一般性,定义如下:
structpatient-info{/3病人资料信息3/guint32databaseNo;/3数据库里主键3/guint8checkNo;/3检验号3/gbooleanemergency-treat-mark;/急诊标记3/gcharname[16];/3姓名3/gcharsample-date[16];/3标本日期3/gcharglucose[16];/3葡萄糖3/};在论述中,为了节约篇幅,所有的出错处理均省略。其流程如图1所示。详细介绍如下:
...//流程所示的初始化;GtkWidget3scrollwin-treeview=glade-xml-get-widget(xml,“scrollwin-treeview”);GtkWidget3treeview-record=initialize-treeview(treeview-record,scrollwin-treeview);...mysql-database-init();glade-xml-signal-autoconnect(xml);gtk-main();图1 程序流程图其中部分函数如下:/3GtkTreeView是将显示的数据和数据存储分开的抽象显示控件,显示有树型和列表两种,本程序用列表类型。list-store-db为GtkListStore3类型全局变量,目的方便函数间传递3/GtkWidget3initialize-treeview(GtkWidget3tree-view,GtkWidget3scrollwin-treeview){/3创建一个list,形参一表示列的总数,其他分别表示各列的类型3/list-store-db=gtk-list-store-new(NUM-COLUMNS,G-TYPE-UINT,G-TYPE-UINT,G-TYPE-STRING,G-TYPE-STRING,G-TYPE-STRING,G-TYPE-STRING);tree-view=gtk-tree-view-new-with-model(GTK-TREE-MODEL(list-store-db));gtk-tree-view-set-rules-hint(GTK-TREE-VIEW(tree-view),TRUE);/3将tree-view控件放到scrollwin-treeview控件里3/gtk-container-add(GTK-CONTAINER(scrollwin-tree2view),tree-view);tree-view=treeview-set-col(tree-view,COL-DATABASE-NO,“id”,0,COL-DEFAULT);/3设置一列的属性3/tree-view=treeview-set-col(tree-view,COL-CHECK-NO,“检验号”,0,COL-DEFAULT);tree-view=treeview-set-col(tree-view,COL-EMERG-TREAT,“急诊”,2,COL-EMERG-COL2OR);tree-view=treeview-set-col(tree-view,COL-NAME,“姓名”,0,COL-DEFAULT);.../3标本日期,葡萄糖写法同姓名类同3/returntree-view;}/3以下是向列表添加数据的代码,并显示出来3/voidshow-patient-info(structpatient-info3pt-info)/3pt-info指向一个完整病人信息的指针3/{GtkTreeItertree-iter;.../3先将数据进行转换,比如布尔变量急诊为真时转为
・722・第8期 张绪兵等:Linux下数据库应用的设计与实现