新闻中心

EEPW首页 > 电源与新能源 > 设计应用 > 基于VC环境的变频器联网控制

基于VC环境的变频器联网控制

作者:时间:2011-03-26来源:网络收藏

3 应用DAO技术操作数据库

数据库是现代计算机应用的一个重要组成部分,是人们有效地进行数据存储、共享和处理的工具。有两种主要的数据库类型,即平面数据库和关系数据库。简而言之,平面数据库是一组记录的集合,数据库中的每一个记录都是由字段构成的,第一个字段则包含了与本条记录相关的特定信息。

而关系数据库就像是由若干个平面数据库连接在一起形成的。采用关系数据库能够建立一个记录集合与另一个记录集合之间的关系。在关系数据库中,每一个记录集合称为一张表,表之间的连接是通过关键字实现的,关键字用来确定一条记录的值。

这个软件的数据库使用的是平面数据库。数据库中存储了网络的信息和网络中各个的参数。数据库用Access建立,应用DAO作为数据库的访问接口。Microsoft Jet为像Access和Visual Basic这样的产品提供了数据引擎。DAO是使用Microsoft Jet数据库引擎来访问数据库的。VisualC++6.0提供了对DAO的封装,MFCDAO类封装了DAO的大部分功能,从而使程序可以使用MFCDAO类方便地进行数据库访问。

下面具体叙述是如何利用数据库完成软件的网络功能。首先用Access建立网络的信息表,然后程序中建立一个基类为CdaoRecordset(DAO中封装的一个类)的类Cdata,该类与数据库中的变频器网络信息表相联系。当要在网络中添加一个变频器时,不仅要在变频器网络信息表上进行添加数据操作,还要在数据库中添加一个关于该变频器功能码的新表。对变频器网络信息表的添加操作用了一个CdaoRecordset类数据库指针m_leftptr。CdaoRecordset类是对DAO记录集对象的封装,代表从数据源中选择的一种记录,管理数据库中表里记录的操作。而要在数据库中添加一个新增变频器功能码的新表,需要设定一个CdaoDatabase类的变量。CdaoDatabase类是对DAO数据库对象的封装,它代表了一个数据库连接,管理数据库的操作和数据库中表的操作。下面是网络中添加一个变频器时对数据库的操作程序。

CComzDoc*pDoc=(CComzDoc*)GetDocument();

m_leftptr=&pDoc->m_Docptr;

CAddNodeDlgm_addnode;

if(m_addnode.DoModal()==IDOK)

{

m_leftptr->Open();

m_leftptr->AddNew();

m_leftptr->m_NodeAddress=

m_addnode.m_adddress;

m_leftptr->m_NodeName=

m_addnode.m_addnodename;

m_leftptr->m_NodeOrderCalled=

m_addnode.m_comturn;

m_leftptr->Update();

m_leftptr->Close();

CDaoDatabasem_pDatabase;

m_pDatabase.Open(ConverterPc

97.mdb);

CDaoTableDeftable(&m_pDatabase);

table.Create(m_addnode.m_addnodename);

table.CreateField(AutoIndex,dbInteger,2);

table.CreateField(ParaGroup,dbText,10);

table.CreateField(ParaNo,dbInteger,2);

table.CreateField(ParaName,dbText,100);

table.CreateField(ParaDefaultVal,dbInteger,2);

table.CreateField(ParaCoefficient,dbInteger,2);

table.CreateField(ParaDW,dbText,10);

table.CreateField(ParaModif,dbInteger,2);

table.CreateField(ParaMemo,dbText,255);

table.Append();

m_pDatabase.Close();

}

添加完成后,该变频器如果在线就完成初始化数据库命令,初始化变频器的功能码。在软件上显示变频器功能码数据库如图4所示。

图4 变频器功能码

软件的数据库中表的删除及表中记录的删除和更新操作所采用的DAO类是一样的,只是使用的指令不同,这里就不再赘述。变频器功能码表中的具体数据,要通过串口通信从相应的变频器中获得,这就要用到对计算机串口编程。



评论


相关推荐

技术专区

关闭